home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c15.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  113.4 KB  |  4,252 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:UNIQUE_STRING.us_put*/
  10. /*No:UNIQUE_STRING.us_character_bits*/
  11. /*No:UNIQUE_STRING.us_none*/
  12. /*No:UNIQUE_STRING.us_dictionary*/
  13. /*No:UNIQUE_STRING.us_minimum_integer*/
  14. /*No:UNIQUE_STRING.us_character_ref*/
  15. /*No:UNIQUE_STRING.us_integer*/
  16. /*No:UNIQUE_STRING.us_copy*/
  17. /*No:UNIQUE_STRING.us_generator*/
  18. /*No:UNIQUE_STRING.us_minimum_character_code*/
  19. /*No:UNIQUE_STRING.us_maximum_integer*/
  20. /*No:UNIQUE_STRING.us_standard_copy*/
  21. /*No:UNIQUE_STRING.us_maximum_character_code*/
  22. /*No:UNIQUE_STRING.us_minimum_real*/
  23. /*No:UNIQUE_STRING.us_sprintf_double*/
  24. /*No:UNIQUE_STRING.us_with_capacity*/
  25. void r902key_pfx_ifx(T0* a1){
  26. char _c=0;
  27. int _i=0;
  28. _i=1;
  29. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  30. _c=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  31. /*IF*/if (r3is_letter(_c)) {
  32. r7extend(((T7*)(oBC902pfx_ifx)),_c);
  33. }
  34. else {
  35. r2append_in(((unsigned char)_c),oBC902pfx_ifx);
  36. }
  37. /*FI*/_i=(_i)+(1);
  38. }
  39. }
  40. /*No:UNIQUE_STRING.us_backslash_backslash*/
  41. /*No:UNIQUE_STRING.us_compile_to_jvm*/
  42. /*No:UNIQUE_STRING.us_maximum_real*/
  43. /*No:UNIQUE_STRING.us_conforms_to*/
  44. /*No:UNIQUE_STRING.us_and*/
  45. /*No:UNIQUE_STRING.us_print*/
  46. /*No:UNIQUE_STRING.us_print_on*/
  47. /*No:UNIQUE_STRING.us_double_ref*/
  48. /*No:UNIQUE_STRING.us_and_then*/
  49. /*No:UNIQUE_STRING.us_put_0*/
  50. /*No:UNIQUE_STRING.us_array*/
  51. /*No:UNIQUE_STRING.us_from_pointer*/
  52. /*No:UNIQUE_STRING.us_lower*/
  53. /*No:UNIQUE_STRING.us_std_neq*/
  54. /*No:UNIQUE_STRING.us_pointer_bits*/
  55. /*No:UNIQUE_STRING.us_slash_slash*/
  56. /*No:UNIQUE_STRING.us_double_floor*/
  57. /*No:UNIQUE_STRING.us_integer_bits*/
  58. /*No:UNIQUE_STRING.us_stdout*/
  59. /*No:UNIQUE_STRING.us_capacity*/
  60. /*No:UNIQUE_STRING.us_put_1*/
  61. /*No:UNIQUE_STRING.make*/
  62. /*No:UNIQUE_STRING.us_current*/
  63. /*No:UNIQUE_STRING.us_item*/
  64. T0* r902read(T0* a1){
  65. T0* R=NULL;
  66. R=r794at(((T794*)(oBC902memory)),a1);
  67. return R;
  68. }
  69. /*No:UNIQUE_STRING.us_pointer*/
  70. /*No:UNIQUE_STRING.us_string*/
  71. /*No:UNIQUE_STRING.us_se_remove*/
  72. /*No:UNIQUE_STRING.us_flush_stream*/
  73. /*No:UNIQUE_STRING.us_realloc*/
  74. /*No:UNIQUE_STRING.us_like_current*/
  75. /*No:UNIQUE_STRING.us_floor*/
  76. /*No:UNIQUE_STRING.us_double_bits*/
  77. /*No:UNIQUE_STRING.us_or_else*/
  78. /*No:UNIQUE_STRING.us_blank*/
  79. /*No:UNIQUE_STRING.us_is_expanded_type*/
  80. /*No:UNIQUE_STRING.us_std_output*/
  81. /*No:UNIQUE_STRING.us_fclose*/
  82. T0* r902item(T0* a1){
  83. T0* R=NULL;
  84. r902initialize();
  85. /*IF*/if (r794has(((T794*)(oBC902memory)),a1)) {
  86. R=r902read(a1);
  87. }
  88. else {
  89. R=r7twin(((T7*)a1));
  90. r902add1(R);
  91. }
  92. /*FI*/return R;
  93. }
  94. /*No:UNIQUE_STRING.us_ge*/
  95. /*No:UNIQUE_STRING.us_neq*/
  96. /*No:UNIQUE_STRING.us_stdin*/
  97. /*No:UNIQUE_STRING.us_slash*/
  98. /*No:UNIQUE_STRING.us_compile_to_c*/
  99. /*No:UNIQUE_STRING.us_crash*/
  100. /*No:UNIQUE_STRING.us_c_inline_c*/
  101. /*No:UNIQUE_STRING.us_standard_twin*/
  102. /*No:UNIQUE_STRING.us_truncated_to_integer*/
  103. /*No:UNIQUE_STRING.us_write_byte*/
  104. /*No:UNIQUE_STRING.us_stderr*/
  105. /*No:UNIQUE_STRING.us_se_system*/
  106. /*No:UNIQUE_STRING.us_std_file_read*/
  107. /*No:UNIQUE_STRING.us_sfr_open*/
  108. /*No:UNIQUE_STRING.us_sfw_open*/
  109. /*No:UNIQUE_STRING.us_character*/
  110. /*No:UNIQUE_STRING.us_pointer_ref*/
  111. /*No:UNIQUE_STRING.us_shift_left*/
  112. /*No:UNIQUE_STRING.us_std_error*/
  113. T0*oBC902pfx_ifx=NULL;
  114. /*No:UNIQUE_STRING.us_le*/
  115. /*No:UNIQUE_STRING.us_make*/
  116. /*No:UNIQUE_STRING.us_integer_ref*/
  117. /*No:UNIQUE_STRING.us_bitn*/
  118. /*No:UNIQUE_STRING.us_twin*/
  119. /*No:UNIQUE_STRING.us_bit_n*/
  120. /*No:UNIQUE_STRING.us_real*/
  121. /*No:UNIQUE_STRING.us_die_with_code*/
  122. /*No:UNIQUE_STRING.us_implies*/
  123. /*No:UNIQUE_STRING.us_result*/
  124. /*No:UNIQUE_STRING.us_generating_type*/
  125. /*No:UNIQUE_STRING.us_is_basic_expanded_type*/
  126. T0* r902for_prefix(T0* a1){
  127. T0* R=NULL;
  128. r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms1_902));
  129. r902key_pfx_ifx(a1);
  130. R=r902item(oBC902pfx_ifx);
  131. return R;
  132. }
  133. T0* r902for_infix(T0* a1){
  134. T0* R=NULL;
  135. r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms2_902));
  136. r902key_pfx_ifx(a1);
  137. R=r902item(oBC902pfx_ifx);
  138. return R;
  139. }
  140. /*No:UNIQUE_STRING.us_bit*/
  141. /*No:UNIQUE_STRING.us_minus*/
  142. /*No:UNIQUE_STRING.us_shift_right*/
  143. /*No:UNIQUE_STRING.us_count*/
  144. /*No:UNIQUE_STRING.us_se_argc*/
  145. /*No:UNIQUE_STRING.us_storage*/
  146. /*No:UNIQUE_STRING.us_object_size*/
  147. /*No:UNIQUE_STRING.us_se_rename*/
  148. /*No:UNIQUE_STRING.us_memory*/
  149. /*No:UNIQUE_STRING.us_code*/
  150. /*No:UNIQUE_STRING.us_sprintf_pointer*/
  151. /*No:UNIQUE_STRING.us_standard_is_equal*/
  152. /*No:UNIQUE_STRING.us_real_ref*/
  153. /*No:UNIQUE_STRING.us_boolean*/
  154. /*No:UNIQUE_STRING.us_is_not_void*/
  155. /*No:UNIQUE_STRING.us_at*/
  156. /*No:UNIQUE_STRING.us_eq*/
  157. /*No:UNIQUE_STRING.us_double*/
  158. /*No:UNIQUE_STRING.us_pointer_size*/
  159. /*No:UNIQUE_STRING.us_to_double*/
  160. /*No:UNIQUE_STRING.us_xor*/
  161. /*No:UNIQUE_STRING.us_io*/
  162. /*No:UNIQUE_STRING.us_platform*/
  163. /*No:UNIQUE_STRING.us_is_equal*/
  164. /*No:UNIQUE_STRING.us_to_bit*/
  165. /*No:UNIQUE_STRING.us_bit_n_ref*/
  166. /*No:UNIQUE_STRING.us_to_character*/
  167. /*No:UNIQUE_STRING.us_se_string2double*/
  168. /*No:UNIQUE_STRING.us_free*/
  169. /*No:UNIQUE_STRING.us_read_byte*/
  170. /*No:UNIQUE_STRING.us_not*/
  171. /*No:UNIQUE_STRING.us_void*/
  172. /*No:UNIQUE_STRING.us_muls*/
  173. /*No:UNIQUE_STRING.us_trace_switch*/
  174. /*No:UNIQUE_STRING.us_feof*/
  175. /*No:UNIQUE_STRING.us_boolean_bits*/
  176. /*No:UNIQUE_STRING.count*/
  177. /*No:UNIQUE_STRING.us_gt*/
  178. /*No:UNIQUE_STRING.us_se_getenv*/
  179. /*No:UNIQUE_STRING.us_to_integer*/
  180. /*No:UNIQUE_STRING.us_native_array_character*/
  181. /*No:UNIQUE_STRING.us_calloc*/
  182. /*No:UNIQUE_STRING.us_to_pointer*/
  183. /*No:UNIQUE_STRING.us_clear_all*/
  184. /*No:UNIQUE_STRING.us_real_bits*/
  185. /*No:UNIQUE_STRING.us_plus*/
  186. /*No:UNIQUE_STRING.us_boolean_ref*/
  187. /*No:UNIQUE_STRING.us_c_inline_h*/
  188. /*No:UNIQUE_STRING.us_element_sizeof*/
  189. /*No:UNIQUE_STRING.us_upper*/
  190. /*No:UNIQUE_STRING.us_native_array*/
  191. void r902add1(T0* a1){
  192. r794put(((T794*)(oBC902memory)),a1,a1);
  193. }
  194. /*No:UNIQUE_STRING.us_pow*/
  195. void r902add2(T0* a1){
  196. /*IF*/if ((((T818*)((T818*)(oBC364eiffel_parser))))->_case_insensitive/*0*/) {
  197. r7to_lower(((T7*)a1));
  198. }
  199. /*FI*/r902add1(a1);
  200. }
  201. T0*oBC902memory=NULL;
  202. /*No:UNIQUE_STRING.us_eof_code*/
  203. /*No:UNIQUE_STRING.us_print_run_time_stack*/
  204. int fBC902initialize=0;
  205. void r902initialize(void){
  206. if (fBC902initialize==0){
  207. fBC902initialize=1;
  208. r902add1(((T0*)ms1_473));
  209. r902add1(((T0*)ms2_473));
  210. r902add1(((T0*)ms3_473));
  211. r902add1(((T0*)ms4_473));
  212. r902add1(((T0*)ms5_473));
  213. r902add1(((T0*)ms6_473));
  214. r902add1(((T0*)ms7_473));
  215. r902add1(((T0*)ms8_473));
  216. r902add1(((T0*)ms9_473));
  217. r902add1(((T0*)ms10_473));
  218. r902add1(((T0*)ms11_473));
  219. r902add1(((T0*)ms12_473));
  220. r902add1(((T0*)ms13_473));
  221. r902add1(((T0*)ms14_473));
  222. r902add1(((T0*)ms15_473));
  223. r902add1(((T0*)ms16_473));
  224. r902add1(((T0*)ms17_473));
  225. r902add1(((T0*)ms18_473));
  226. r902add1(((T0*)ms19_473));
  227. r902add1(((T0*)ms20_473));
  228. r902add1(((T0*)ms21_473));
  229. r902add1(((T0*)ms22_473));
  230. r902add1(((T0*)ms23_473));
  231. r902add1(((T0*)ms24_473));
  232. r902add1(((T0*)ms25_473));
  233. r902add1(((T0*)ms26_473));
  234. r902add1(((T0*)ms27_473));
  235. r902add1(((T0*)ms28_473));
  236. r902add1(((T0*)ms29_473));
  237. r902add1(((T0*)ms30_473));
  238. r902add1(((T0*)ms31_473));
  239. r902add1(((T0*)ms32_473));
  240. r902add1(((T0*)ms33_473));
  241. r902add1(((T0*)ms34_473));
  242. r902add1(((T0*)ms35_473));
  243. r902add1(((T0*)ms36_473));
  244. r902add1(((T0*)ms37_473));
  245. r902add1(((T0*)ms38_473));
  246. r902add1(((T0*)ms39_473));
  247. r902add1(((T0*)ms40_473));
  248. r902add1(((T0*)ms41_473));
  249. r902add1(((T0*)ms42_473));
  250. r902add1(((T0*)ms43_473));
  251. r902add1(((T0*)ms44_473));
  252. r902add1(((T0*)ms45_473));
  253. r902add1(((T0*)ms46_473));
  254. r902add1(((T0*)ms47_473));
  255. r902add1(((T0*)ms48_473));
  256. r902add1(((T0*)ms49_473));
  257. r902add1(((T0*)ms50_473));
  258. r902add1(((T0*)ms51_473));
  259. r902add1(((T0*)ms52_473));
  260. r902add1(((T0*)ms53_473));
  261. r902add1(((T0*)ms54_473));
  262. r902add1(((T0*)ms55_473));
  263. r902add1(((T0*)ms56_473));
  264. r902add1(((T0*)ms57_473));
  265. r902add1(((T0*)ms58_473));
  266. r902add1(((T0*)ms59_473));
  267. r902add1(((T0*)ms60_473));
  268. r902add1(((T0*)ms61_473));
  269. r902add1(((T0*)ms62_473));
  270. r902add1(((T0*)ms63_473));
  271. r902add1(((T0*)ms64_473));
  272. r902add1(((T0*)ms65_473));
  273. r902add1(((T0*)ms66_473));
  274. r902add1(((T0*)ms67_473));
  275. r902add1(((T0*)ms68_473));
  276. r902add1(((T0*)ms69_473));
  277. r902add1(((T0*)ms70_473));
  278. r902add1(((T0*)ms71_473));
  279. r902add1(((T0*)ms72_473));
  280. r902add1(((T0*)ms73_473));
  281. r902add1(((T0*)ms74_473));
  282. r902add1(((T0*)ms75_473));
  283. r902add1(((T0*)ms76_473));
  284. r902add1(((T0*)ms77_473));
  285. r902add1(((T0*)ms78_473));
  286. r902add1(((T0*)ms79_473));
  287. r902add1(((T0*)ms80_473));
  288. r902add1(((T0*)ms81_473));
  289. r902add1(((T0*)ms82_473));
  290. r902add1(((T0*)ms83_473));
  291. r902add1(((T0*)ms84_473));
  292. r902add1(((T0*)ms85_473));
  293. r902add1(((T0*)ms86_473));
  294. r902add1(((T0*)ms87_473));
  295. r902add1(((T0*)ms88_473));
  296. r902add1(((T0*)ms89_473));
  297. r902add2(((T0*)ms90_473));
  298. r902add2(((T0*)ms91_473));
  299. r902add2(((T0*)ms92_473));
  300. r902add2(((T0*)ms93_473));
  301. r902add2(((T0*)ms94_473));
  302. r902add2(((T0*)ms95_473));
  303. r902add2(((T0*)ms96_473));
  304. r902add2(((T0*)ms97_473));
  305. r902add1(((T0*)ms98_473));
  306. r902add1(((T0*)ms99_473));
  307. r902add1(((T0*)ms100_473));
  308. r902add1(((T0*)ms101_473));
  309. r902add1(((T0*)ms102_473));
  310. r902add1(((T0*)ms103_473));
  311. r902add1(((T0*)ms104_473));
  312. r902add1(((T0*)ms105_473));
  313. r902add1(((T0*)ms106_473));
  314. r902add1(((T0*)ms107_473));
  315. r902add1(((T0*)ms108_473));
  316. r902add1(((T0*)ms109_473));
  317. r902add1(((T0*)ms110_473));
  318. r902add1(((T0*)ms111_473));
  319. r902add1(((T0*)ms112_473));
  320. r902add1(((T0*)ms113_473));
  321. r902add1(((T0*)ms114_473));
  322. r902add1(((T0*)ms115_473));
  323. r902add1(((T0*)ms116_473));
  324. r902add1(((T0*)ms117_473));
  325. r902add1(((T0*)ms118_473));
  326. r902add1(((T0*)ms119_473));
  327. r902add1(((T0*)ms120_473));
  328. r902add1(((T0*)ms121_473));
  329. r902add1(((T0*)ms122_473));
  330. r902add1(((T0*)ms123_473));
  331. r902add1(((T0*)ms124_473));
  332. r902add1(((T0*)ms125_473));
  333. r902add1(((T0*)ms126_473));
  334. r902add1(((T0*)ms127_473));
  335. r902add1(((T0*)ms128_473));
  336. r902add1(((T0*)ms129_473));
  337. r902add1(((T0*)ms130_473));
  338. r902add1(((T0*)ms131_473));
  339. r902add1(((T0*)ms132_473));
  340. r902add1(((T0*)ms133_473));
  341. r902add1(((T0*)ms134_473));
  342. r902add1(((T0*)ms135_473));
  343. r902add1(((T0*)ms136_473));
  344. r902add1(((T0*)ms137_473));
  345. r902add1(((T0*)ms138_473));
  346. r902add1(((T0*)ms139_473));
  347. r902add1(((T0*)ms140_473));
  348. r902add1(((T0*)ms141_473));
  349. r902add1(((T0*)ms142_473));
  350. r902add1(((T0*)ms143_473));
  351. r902add1(((T0*)ms144_473));
  352. r902add1(((T0*)ms145_473));
  353. r902add1(((T0*)ms146_473));
  354. r902add1(((T0*)ms147_473));
  355. }}
  356. /*No:UNIQUE_STRING.us_malloc*/
  357. /*No:UNIQUE_STRING.us_fixed_array*/
  358. /*No:UNIQUE_STRING.us_std_input*/
  359. /*No:UNIQUE_STRING.us_lt*/
  360. /*No:UNIQUE_STRING.us_minimum_double*/
  361. /*No:UNIQUE_STRING.us_se_argv*/
  362. /*No:UNIQUE_STRING.us_any*/
  363. /*No:UNIQUE_STRING.us_or*/
  364. /*No:UNIQUE_STRING.us_general*/
  365. /*No:UNIQUE_STRING.us_maximum_double*/
  366. /*No:UNIQUE_STRING.us_to_real*/
  367. void r548sort_running(T0* a1){
  368. int _moved=0;
  369. int _buble=0;
  370. int _max=0;
  371. int _min=0;
  372. _max=(((T396*)((T396*)a1)))->_upper/*8*/;
  373. _min=1;
  374. _moved=1;
  375. while (!(!(_moved))) {
  376. _moved=0;
  377. /*IF*/if (((_max)-(_min))>(0)) {
  378. _buble=(_min)+(1);
  379. while (!((_buble)>(_max))) {
  380. /*IF*/if (((((T355*)((T355*)(r396item(((T396*)a1),(_buble)-(1))))))->_id/*4*/)>((((T355*)((T355*)(r396item(((T396*)a1),_buble)))))->_id/*4*/)) {
  381. r396swap(((T396*)a1),(_buble)-(1),_buble);
  382. _moved=1;
  383. }
  384. /*FI*/_buble=(_buble)+(1);
  385. }
  386. _max=(_max)-(1);
  387. }
  388. /*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
  389. _moved=0;
  390. _buble=(_max)-(1);
  391. while (!((_buble)<(_min))) {
  392. /*IF*/if (((((T355*)((T355*)(r396item(((T396*)a1),_buble)))))->_id/*4*/)>((((T355*)((T355*)(r396item(((T396*)a1),(_buble)+(1))))))->_id/*4*/)) {
  393. r396swap(((T396*)a1),_buble,(_buble)+(1));
  394. _moved=1;
  395. }
  396. /*FI*/_buble=(_buble)-(1);
  397. }
  398. _min=(_min)+(1);
  399. }
  400. /*FI*/}
  401. }
  402. void r548define1(T548* C){
  403. int _j=0;
  404. int _i=0;
  405. r324swap_on_h(((T324*)(oBC364cpp)));
  406. r306put_string(((T306*)(oBC364echo)),((T0*)ms1_548));
  407. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_548));
  408. /*]*/
  409. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms3_548),((T0*)ms117_470));
  410. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms4_548),((T0*)ms117_470));
  411. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms5_548),((T0*)ms117_470));
  412. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms6_548),((T0*)ms117_470));
  413. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms7_548),((T0*)ms8_548));
  414. r324put_extern2(((T324*)(oBC364cpp)),((T0*)ms9_548),'0');
  415. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms10_548),((T0*)ms117_470));
  416. r324put_extern5(((T324*)(oBC364cpp)),((T0*)ms11_548),((T0*)ms12_548));
  417. r324put_extern2(((T324*)(oBC364cpp)),((T0*)ms13_548),'0');
  418. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  419. /*]*/
  420. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms14_548));
  421. /*]*/
  422. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),2048);
  423. /*]*/
  424. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms15_548));
  425. /*]*/
  426. _i=(2048)-(2);
  427. _j=7;
  428. while (!((_i)==(0))) {
  429. /*IF*/if ((_j)==(0)) {
  430. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  431. char b1='\n';
  432. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  433. }/*]*/
  434. /*]*/
  435. _j=7;
  436. }
  437. else {
  438. _j=(_j)-(1);
  439. }
  440. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms117_470));
  441. /*]*/
  442. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  443. char b1='\54';
  444. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  445. }/*]*/
  446. /*]*/
  447. _i=(_i)-(1);
  448. }
  449. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms117_470));
  450. /*]*/
  451. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  452. char b1='\175';
  453. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  454. }/*]*/
  455. /*]*/
  456. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  457. char b1='\73';
  458. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  459. }/*]*/
  460. /*]*/
  461. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  462. char b1='\n';
  463. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  464. }/*]*/
  465. /*]*/
  466. r324swap_on_h(((T324*)(oBC364cpp)));
  467. /*IF*/if ((((T548*)C))->_info_flag/*4*/) {
  468. r324put_extern2(((T324*)(oBC364cpp)),((T0*)ms16_548),'0');
  469. }
  470. /*FI*/}
  471. void r548define2(T548* C){
  472. T0* _rcd=NULL;
  473. T0* _rc=NULL;
  474. int _i=0;
  475. _rcd=oBC604run_class_dictionary;
  476. r324put_c_function(((T324*)(oBC364cpp)),((T0*)ms17_548),((T0*)ms18_548));
  477. r324put_c_function(((T324*)(oBC364cpp)),((T0*)ms19_548),((T0*)ms20_548));
  478. r324put_c_function(((T324*)(oBC364cpp)),((T0*)ms21_548),((T0*)ms22_548));
  479. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548body)))))->_count)=(0);
  480. /*]*/
  481. r7append(((T7*)(oBC548body)),((T0*)ms23_548));
  482. /*IF*/if ((((T548*)C))->_info_flag/*4*/) {
  483. r7append(((T7*)(oBC548body)),((T0*)ms24_548));
  484. }
  485. /*FI*/r340gc_mark_in(oBC548body);
  486. r916gc_mark_in(oBC548body);
  487. r548call_gc_sweep(_rcd);
  488. r7append(((T7*)(oBC548body)),((T0*)ms25_548));
  489. r2append_in((2048)-(1),oBC548body);
  490. r7append(((T7*)(oBC548body)),((T0*)ms26_548));
  491. r324put_c_function(((T324*)(oBC364cpp)),((T0*)ms27_548),oBC548body);
  492. r324swap_on_h(((T324*)(oBC364cpp)));
  493. _i=1;
  494. while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
  495. _rc=r250item(((T250*)_rcd),_i);
  496. r355gc_define1(((T355*)_rc));
  497. _i=(_i)+(1);
  498. }
  499. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  500. /*]*/
  501. _i=1;
  502. while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
  503. _rc=r250item(((T250*)_rcd),_i);
  504. r355gc_define2(((T355*)_rc));
  505. _i=(_i)+(1);
  506. }
  507. _i=(((T187*)((T187*)(oBC548run_class_list))))->_upper/*8*/;
  508. while (!((_i)<(0))) {
  509. r548switch_for(C,/*(IRF4.6item*/((((T187*)((T187*)(oBC548run_class_list))))->_storage/*0*/)[_i]/*)*/);
  510. _i=(_i)-(1);
  511. }
  512. /*IF*/if ((((T548*)C))->_info_flag/*4*/) {
  513. r548define_gc_info(_rcd);
  514. }
  515. /*FI*/}
  516. int r548threshold_start(int a1){
  517. int R=0;
  518. double _log2_nb=0;
  519. int _nb=0;
  520. R=9;
  521. {int z1=a1;
  522.  
  523. if((7==z1)||(9==z1)){
  524. _nb=/*(IRF4.9count*//*(IRF4.6count*/((((T256*)((T256*)(oBC340ms_list))))->_upper/*12*/)+(1)/*)*//*)*/;
  525. /*IF*/if ((_nb)>(0)) {
  526. _log2_nb=(r2log(_nb))/(r2log(2));
  527. _nb=(r5rounded(_log2_nb))+(2);
  528. /*IF*/if ((_nb)>(R)) {
  529. R=_nb;
  530. }
  531. /*FI*/}
  532. /*FI*/}
  533. }
  534. return R;
  535. }
  536. /*No:GC_HANDLER.info_flag*/
  537. void r548define_gc_info(T0* a1){
  538. T0* _rc=NULL;
  539. int _i=0;
  540. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548header)))))->_count)=(0);
  541. /*]*/
  542. r7append(((T7*)(oBC548header)),((T0*)ms133_470));
  543. r7extend(((T7*)(oBC548header)),'\40');
  544. r7append(((T7*)(oBC548header)),((T0*)ms106_470));
  545. r7append(((T7*)(oBC548header)),((T0*)ms97_470));
  546. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548body)))))->_count)=(0);
  547. /*]*/
  548. _i=1;
  549. while (!((_i)>((((T250*)((T250*)a1)))->_count/*40*/))) {
  550. _rc=r250item(((T250*)a1),_i);
  551. r355gc_info_in(((T355*)_rc),oBC548body);
  552. _i=(_i)+(1);
  553. }
  554. r7append(((T7*)(oBC548body)),((T0*)ms42_548));
  555. r324put_c_function(((T324*)(oBC364cpp)),oBC548header,oBC548body);
  556. }
  557. /*No:GC_HANDLER.fz_t0_star*/
  558. T0*oBC548header=NULL;
  559. /*No:GC_HANDLER.make*/
  560. /*No:GC_HANDLER.fz_sizeof*/
  561. /*No:GC_HANDLER.fz_00*/
  562. /*No:GC_HANDLER.fz_cast_void_star*/
  563. /*No:GC_HANDLER.fz_gc_info*/
  564. /*No:GC_HANDLER.fz_null*/
  565. /*No:GC_HANDLER.fz_c_if_neq_null*/
  566. /*No:GC_HANDLER.fz_13*/
  567. void r548switch_for(T548* C,T0* a1){
  568. T0* _r=NULL;
  569. T0* _ct=NULL;
  570. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548header)))))->_count)=(0);
  571. /*]*/
  572. r7append(((T7*)(oBC548header)),((T0*)ms133_470));
  573. r7extend(((T7*)(oBC548header)),'\40');
  574. r7extend(((T7*)(oBC548header)),'X');
  575. _ct=(((T355*)((T355*)a1)))->_current_type/*0*/;
  576. X291gc_mark_in(_ct,oBC548header);
  577. r7extend(((T7*)(oBC548header)),'\50');
  578. r7append(((T7*)(oBC548header)),((T0*)ms128_470));
  579. r7extend(((T7*)(oBC548header)),'o');
  580. r7extend(((T7*)(oBC548header)),'\51');
  581. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548body)))))->_count)=(0);
  582. /*]*/
  583. _r=(((T355*)((T355*)a1)))->_running/*12*/;
  584. r548sort_running(_r);
  585. r7append(((T7*)(oBC548body)),((T0*)ms38_548));
  586. r548c_dicho(C,_r,1,(((T396*)((T396*)_r)))->_upper/*8*/);
  587. r7extend(((T7*)(oBC548body)),'\175');
  588. r324put_c_function(((T324*)(oBC364cpp)),oBC548header,oBC548body);
  589. }
  590. /*No:GC_HANDLER.fz_new*/
  591. /*No:GC_HANDLER.fz_c_void_args*/
  592. void r548call_gc_sweep(T0* a1){
  593. T0* _rc=NULL;
  594. int _i=0;
  595. _i=1;
  596. while (!((_i)>((((T250*)((T250*)a1)))->_count/*40*/))) {
  597. _rc=r250item(((T250*)a1),_i);
  598. r355call_gc_sweep_in(((T355*)_rc),oBC548body);
  599. _i=(_i)+(1);
  600. }
  601. }
  602. T0*oBC548body=NULL;
  603. void r548set_info_flag(T548* C){
  604. C->_is_on=1;
  605. C->_info_flag=1;
  606. }
  607. /*No:GC_HANDLER.nafl_size*/
  608. void r548c_dicho(T548* C,T0* a1,int a2,int a3){
  609. T0* _rc=NULL;
  610. int _m=0;
  611. /*IF*/if ((a2)==(a3)) {
  612. _rc=r396item(((T396*)a1),a2);
  613. X291gc_mark_in((((T355*)((T355*)_rc)))->_current_type/*0*/,oBC548body);
  614. r7extend(((T7*)(oBC548body)),'\50');
  615. r7extend(((T7*)(oBC548body)),'\50');
  616. r7extend(((T7*)(oBC548body)),'T');
  617. r2append_in((((T355*)((T355*)_rc)))->_id/*4*/,oBC548body);
  618. r7extend(((T7*)(oBC548body)),'\52');
  619. r7extend(((T7*)(oBC548body)),'\51');
  620. r7extend(((T7*)(oBC548body)),'o');
  621. r7extend(((T7*)(oBC548body)),'\51');
  622. r7append(((T7*)(oBC548body)),((T0*)ms134_470));
  623. }
  624. else {
  625. _m=((a2)+(a3))/(2);
  626. _rc=r396item(((T396*)a1),_m);
  627. r7append(((T7*)(oBC548body)),((T0*)ms39_548));
  628. r2append_in((((T355*)((T355*)_rc)))->_id/*4*/,oBC548body);
  629. r7append(((T7*)(oBC548body)),((T0*)ms40_548));
  630. r548c_dicho(C,a1,a2,_m);
  631. r7append(((T7*)(oBC548body)),((T0*)ms41_548));
  632. r548c_dicho(C,a1,(_m)+(1),a3);
  633. r7extend(((T7*)(oBC548body)),'\175');
  634. }
  635. /*FI*/}
  636. void r548put_new(T548* C,T0* a1){
  637. int _id=0;
  638. T0* _ct=NULL;
  639. _ct=(((T355*)((T355*)a1)))->_current_type/*0*/;
  640. _id=(((T355*)((T355*)a1)))->_id/*4*/;
  641. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC548body)))))->_count)=(0);
  642. /*]*/
  643. r7extend(((T7*)(oBC548body)),'T');
  644. r2append_in(_id,oBC548body);
  645. r7extend(((T7*)(oBC548body)),'\52');
  646. r7extend(((T7*)(oBC548body)),'n');
  647. r7extend(((T7*)(oBC548body)),'\75');
  648. /*IF*/if ((((T548*)C))->_is_on/*0*/) {
  649. r7append(((T7*)(oBC548body)),((T0*)ms115_470));
  650. r2append_in(_id,oBC548body);
  651. r7extend(((T7*)(oBC548body)),'\50');
  652. r7extend(((T7*)(oBC548body)),'\51');
  653. }
  654.  else if (X291need_c_struct(_ct)) {
  655. r7append(((T7*)(oBC548body)),((T0*)ms88_473));
  656. r7extend(((T7*)(oBC548body)),'\50');
  657. r7append(((T7*)(oBC548body)),((T0*)ms123_470));
  658. r7extend(((T7*)(oBC548body)),'\50');
  659. r7extend(((T7*)(oBC548body)),'\52');
  660. r7extend(((T7*)(oBC548body)),'n');
  661. r7extend(((T7*)(oBC548body)),'\51');
  662. r7extend(((T7*)(oBC548body)),'\51');
  663. r7append(((T7*)(oBC548body)),((T0*)ms134_470));
  664. r7extend(((T7*)(oBC548body)),'\52');
  665. r7extend(((T7*)(oBC548body)),'n');
  666. r7extend(((T7*)(oBC548body)),'\75');
  667. r7extend(((T7*)(oBC548body)),'M');
  668. r2append_in(_id,oBC548body);
  669. }
  670. else {
  671. r7append(((T7*)(oBC548body)),((T0*)ms88_473));
  672. r7extend(((T7*)(oBC548body)),'\50');
  673. r7extend(((T7*)(oBC548body)),'1');
  674. r7extend(((T7*)(oBC548body)),'\51');
  675. }
  676. /*FI*/r7append(((T7*)(oBC548body)),((T0*)ms134_470));
  677. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC548body);
  678. /*]*/
  679. }
  680. /*No:GC_HANDLER.fz_void*/
  681. /*No:GC_HANDLER.is_on*/
  682. void r548native_array_mark(T0* a1,T0* a2){
  683. T0* _r=NULL;
  684. T0* _ct=NULL;
  685. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  686. /*IF*/if (X291is_reference(_ct)) {
  687. r7append(((T7*)a1),((T0*)ms37_548));
  688. }
  689. /*FI*/_r=(((T355*)((T355*)a2)))->_running/*12*/;
  690. /*IF*/if ((r396count(((T396*)_r)))>(1)) {
  691. /*IF*/if (!(r187fast_has(((T187*)(oBC548run_class_list)),a2))) {
  692. r187add_last(((T187*)(oBC548run_class_list)),a2);
  693. }
  694. /*FI*/r7extend(((T7*)a1),'X');
  695. X291gc_mark_in(_ct,a1);
  696. }
  697. else {
  698. X291gc_mark_in((((T355*)((T355*)(r396first(((T396*)_r))))))->_current_type/*0*/,a1);
  699. }
  700. /*FI*/r7extend(((T7*)a1),'\50');
  701. /*IF*/if (X291is_expanded(_ct)) {
  702. r7extend(((T7*)a1),'\46');
  703. }
  704. else {
  705. r7append(((T7*)a1),((T0*)ms86_470));
  706. }
  707. /*FI*/r7extend(((T7*)a1),'o');
  708. r7extend(((T7*)a1),'\51');
  709. r7append(((T7*)a1),((T0*)ms134_470));
  710. }
  711. void r548call_gc_mark(T0* a1,T0* a2){
  712. T0* _r=NULL;
  713. T0* _field=NULL;
  714. T0* _ct=NULL;
  715. T0* _rc=NULL;
  716. _ct=(((T820*)((T820*)a2)))->_result_type/*24*/;
  717. /*IF*/if (X291need_gc_mark_function(_ct)) {
  718. _field=X776to_string((((T820*)((T820*)a2)))->_name/*16*/);
  719. /*IF*/if (X291is_expanded(_ct)) {
  720. /*IF*/if (X291is_user_expanded(_ct)) {
  721. r7append(((T7*)a1),((T0*)ms29_548));
  722. }
  723. else {
  724. r7append(((T7*)a1),((T0*)ms88_470));
  725. r7append(((T7*)a1),((T0*)ms30_548));
  726. r7append(((T7*)a1),_field);
  727. r7append(((T7*)a1),((T0*)ms147_470));
  728. X291gc_mark_in(_ct,a1);
  729. r7append(((T7*)a1),((T0*)ms31_548));
  730. r7append(((T7*)a1),_field);
  731. r7append(((T7*)a1),((T0*)ms32_548));
  732. }
  733. /*FI*/}
  734. else {
  735. _rc=X291run_class(_ct);
  736. _r=(((T355*)((T355*)_rc)))->_running/*12*/;
  737. r7append(((T7*)a1),((T0*)ms33_548));
  738. r7append(((T7*)a1),_field);
  739. r7append(((T7*)a1),((T0*)ms34_548));
  740. /*IF*/if ((r396count(((T396*)_r)))>(1)) {
  741. /*IF*/if (!(r187fast_has(((T187*)(oBC548run_class_list)),_rc))) {
  742. r187add_last(((T187*)(oBC548run_class_list)),_rc);
  743. }
  744. /*FI*/r7extend(((T7*)a1),'X');
  745. X291gc_mark_in(_ct,a1);
  746. }
  747. else {
  748. X291gc_mark_in((((T355*)((T355*)(r396first(((T396*)_r))))))->_current_type/*0*/,a1);
  749. }
  750. /*FI*/r7append(((T7*)a1),((T0*)ms35_548));
  751. r7append(((T7*)a1),_field);
  752. r7append(((T7*)a1),((T0*)ms36_548));
  753. }
  754. /*FI*/}
  755. /*FI*/}
  756. T0*oBC548run_class_list=NULL;
  757. /*No:GC_HANDLER.initialize*/
  758. /*No:GC_HANDLER.us_malloc*/
  759. /*No:GC_HANDLER.enable*/
  760. void r390check_creation_clause(T390* C,T0* a1){
  761. T0* _args=NULL;
  762. T0* _top=NULL;
  763. T0* _bottom=NULL;
  764. T0* _fn=NULL;
  765. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  766. /*IF*/if (X291is_like_current(a1)) {
  767. _top=r627base_class(((T627*)(X776start_position(_fn))));
  768. _bottom=X291base_class(a1);
  769. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  770. /*IF*/if ((_fn)==((void*)(NULL))) {
  771. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  772. r683add_position(X776start_position(_fn));
  773. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  774. r7append(((T7*)(oBC683explanation)),b1);
  775. }/*]*/
  776. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  777. r7append(((T7*)(oBC683explanation)),b1);
  778. }/*]*/
  779. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  780. r7append(((T7*)(oBC683explanation)),b1);
  781. }/*]*/
  782. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  783. r7append(((T7*)(oBC683explanation)),b1);
  784. }/*]*/
  785. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  786. r683fatal_error(((T683*)(oBC364eh)),b1);
  787. }/*]*/
  788. }
  789. /*FI*/}
  790. /*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
  791. /*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  792. r390cp_not_found(C,_fn);
  793. }
  794. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  795. }
  796.  else if (!(X291has_creation(a1,_fn))) {
  797. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  798. r683add_position(X776start_position(_fn));
  799. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  800. r7append(((T7*)(oBC683explanation)),b1);
  801. }/*]*/
  802. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  803. r7append(((T7*)(oBC683explanation)),b1);
  804. }/*]*/
  805. r683add_type(a1,((T0*)ms67_470));
  806. r683print_as_fatal_error(((T683*)(oBC364eh)));
  807. }
  808. /*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/))));
  809. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  810. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  811. r683add_position(X776start_position(_fn));
  812. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  813. r683fatal_error(((T683*)(oBC364eh)),b1);
  814. }/*]*/
  815. }
  816. /*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  817. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  818. r683add_position((((T390*)C))->_start_position/*8*/);
  819. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  820. r683fatal_error(((T683*)(oBC364eh)),b1);
  821. }/*]*/
  822. }
  823. /*FI*//*IF*/if ((r390arg_count(C))>(0)) {
  824. _args=X431to_runnable(X173arguments((((T390*)C))->_call/*20*/),r390current_type(C));
  825. /*IF*/if ((_args)==((void*)(NULL))) {
  826. r390error(X431start_position(X173arguments((((T390*)C))->_call/*20*/)),((T0*)ms56_470));
  827. }
  828. else {
  829. X431match_with(_args,(((T390*)C))->_run_feature/*16*/);
  830. }
  831. /*FI*/}
  832. /*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/);
  833. }
  834. T0* r390add_comment(T390* C,T0* a1){
  835. T0* R=NULL;
  836. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  837. R=(T0*)C;
  838. }
  839. /*AF*/else {
  840. {T46*n=malloc(sizeof(*n));
  841. *n=M46;
  842. r46make(n,(T0*)C,a1);
  843. R=(T0*)n;
  844. }
  845. }
  846. /*FI*/return R;
  847. }
  848. void r390check_created_type(T390* C,T0* a1){
  849. T0* _rt=NULL;
  850. _rt=X291run_type(a1);
  851. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  852. }
  853.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  854. r683add_type(_rt,((T0*)ms2_747));
  855. r683add_position((((T390*)C))->_start_position/*8*/);
  856. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  857. r683fatal_error(((T683*)(oBC364eh)),b1);
  858. }/*]*/
  859. }
  860. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  861. r683add_position((((T390*)C))->_start_position/*8*/);
  862. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  863. r7append(((T7*)(oBC683explanation)),b1);
  864. }/*]*/
  865. r683add_type(a1,((T0*)ms5_747));
  866. r683print_as_fatal_error(((T683*)(oBC364eh)));
  867. }
  868. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  869. }
  870. void r390cp_not_found(T390* C,T0* a1){
  871. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  872. r683add_position(X776start_position(a1));
  873. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  874. r683fatal_error(((T683*)(oBC364eh)),b1);
  875. }/*]*/
  876. }
  877. /*No:CREATION_CALL_3.writable*/
  878. /*No:CREATION_CALL_3.us_dictionary*/
  879. /*No:CREATION_CALL_3.us_with_capacity*/
  880. /*No:CREATION_CALL_3.fz_bad_arguments*/
  881. /*No:CREATION_CALL_3.us_array*/
  882. void r390make(T390* C,T0* a1,T0* a2,T0* a3){
  883. C->_start_position=a1;
  884. C->_writable=a2;
  885. C->_call=a3;
  886. }
  887. T0* r390run_args(T390* C){
  888. T0* R=NULL;
  889. R=X173arguments((((T390*)C))->_call/*20*/);
  890. return R;
  891. }
  892. /*No:CREATION_CALL_3.us_string*/
  893. int r390arg_count(T390* C){
  894. int R=0;
  895. /*IF*/if (((((T390*)C))->_call/*20*/)!=((void*)(NULL))) {
  896. R=X173arg_count((((T390*)C))->_call/*20*/);
  897. }
  898. /*FI*/return R;
  899. }
  900. void r390c2c_closing(T390* C,T0* a1){
  901. X662compile_to_c((((T390*)C))->_writable/*12*/);
  902. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  903. char b1='\75';
  904. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  905. }/*]*/
  906. /*]*/
  907. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  908. /*]*/
  909. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  910. char b1='n';
  911. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  912. }/*]*/
  913. /*]*/
  914. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  915. /*]*/
  916. /*IF*/if (r324call_invariant_start(a1)) {
  917. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  918. char b1='n';
  919. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  920. }/*]*/
  921. /*]*/
  922. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  923. char b1='\51';
  924. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  925. }/*]*/
  926. /*]*/
  927. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  928. char b1='\73';
  929. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  930. }/*]*/
  931. /*]*/
  932. }
  933. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  934. char b1='\175';
  935. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  936. }/*]*/
  937. /*]*/
  938. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  939. char b1='\n';
  940. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  941. }/*]*/
  942. /*]*/
  943. r324rs_pop_position(((T324*)(oBC364cpp)));
  944. }
  945. void r390c2c_clear_expanded(T390* C,int a1){
  946. X662compile_to_c((((T390*)C))->_writable/*12*/);
  947. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  948. char b1='\75';
  949. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  950. }/*]*/
  951. /*]*/
  952. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  953. char b1='M';
  954. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  955. }/*]*/
  956. /*]*/
  957. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  958. /*]*/
  959. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  960. /*]*/
  961. }
  962. /*No:CREATION_CALL_3.call*/
  963. /*No:CREATION_CALL_3.run_feature*/
  964. /*No:CREATION_CALL_3.start_position*/
  965. void r390c2c_expanded_initializer(T390* C,T0* a1){
  966. T0* _rf3=NULL;
  967. _rf3=X291expanded_initializer(a1);
  968. /*IF*/if ((_rf3)!=((void*)(NULL))) {
  969. r324expanded_writable(((T324*)(oBC364cpp)),_rf3,(((T390*)C))->_writable/*12*/);
  970. }
  971. /*FI*/}
  972. /*No:CREATION_CALL_3.us_blank*/
  973. void r390compile_to_c(T390* C){
  974. T0* _t=NULL;
  975. _t=X291run_type(X662result_type((((T390*)C))->_writable/*12*/));
  976. /*IF*/if (X291is_reference(_t)) {
  977. r390c2c_opening(C,_t);
  978. r324push_new(((T324*)(oBC364cpp)),(((T390*)C))->_run_feature/*16*/,r390run_args(C));
  979. X496mapping_c((((T390*)C))->_run_feature/*16*/);
  980. r324pop(((T324*)(oBC364cpp)));
  981. r390c2c_closing(C,_t);
  982. }
  983. else {
  984. r390c2c_clear_expanded(C,X291id(_t));
  985. r390c2c_expanded_initializer(C,_t);
  986. }
  987. /*FI*/}
  988. /*No:CREATION_CALL_3.fz_00*/
  989. T0* r390to_runnable(T390* C,T0* a1){
  990. T0* R=NULL;
  991. T0* _t=NULL;
  992. /*IF*/if (((((T390*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  993. r390check_writable(C,a1);
  994. _t=X662result_type((((T390*)C))->_writable/*12*/);
  995. r390check_created_type(C,_t);
  996. r390check_creation_clause(C,_t);
  997. R=(T0*)C;
  998. }
  999. else {
  1000. {T390*n=malloc(sizeof(*n));
  1001. *n=M390;
  1002. r390make(n,(((T390*)C))->_start_position/*8*/,(((T390*)C))->_writable/*12*/,(((T390*)C))->_call/*20*/);
  1003. R=(T0*)n;
  1004. }
  1005. R=r390to_runnable(((T390*)R),a1);
  1006. }
  1007. /*FI*/return R;
  1008. }
  1009. /*No:CREATION_CALL_3.us_std_file_read*/
  1010. /*No:CREATION_CALL_3.fz_03*/
  1011. /*No:CREATION_CALL_3.us_make*/
  1012. T0*oBC394make_precomputable=NULL;
  1013. T0* r390current_type(T390* C){
  1014. T0* R=NULL;
  1015. /*IF*/if (((((T390*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1016. R=(((T592*)((T592*)((((T390*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1017. }
  1018. /*FI*/return R;
  1019. }
  1020. void r390c2c_opening(T390* C,T0* a1){
  1021. T0* _rc=NULL;
  1022. _rc=X291run_class(a1);
  1023. r324rs_push_position(((T324*)(oBC364cpp)),'5',(((T390*)C))->_start_position/*8*/);
  1024. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1025. char b1='\173';
  1026. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1027. }/*]*/
  1028. /*]*/
  1029. r548put_new(((T548*)(oBC364gc_handler)),_rc);
  1030. r324expanded_attributes(((T324*)(oBC364cpp)),a1);
  1031. }
  1032. /*No:CREATION_CALL_3.fz_09*/
  1033. /*No:CREATION_CALL_3.run_compound*/
  1034. /*No:CREATION_CALL_3.fz_dot*/
  1035. int r390is_pre_computable(T390* C){
  1036. int R=0;
  1037. T0* _rfctbcn=NULL;
  1038. T0* _rfn=NULL;
  1039. T0* _rfct=NULL;
  1040. /*IF*/if (X662is_result((((T390*)C))->_writable/*12*/)) {
  1041. /*IF*/if ((r390run_args(C))==((void*)(NULL))) {
  1042. R=1;
  1043. }
  1044. else {
  1045. R=X431is_pre_computable(r390run_args(C));
  1046. }
  1047. /*FI*//*IF*/if (R) {
  1048. /*IF*/if (X496is_pre_computable((((T390*)C))->_run_feature/*16*/)) {
  1049. R=1;
  1050. }
  1051. else {
  1052. _rfct=/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_current_type/*4*/);
  1053. _rfctbcn=(((T451*)((T451*)((((T605*)((T605*)(X291base_class(_rfct)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1054. _rfn=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_name/*16*/));
  1055. /*IF*/if ((((T0*)ms89_473))==((void*)(_rfn))) {
  1056. R=r52has(((T52*)(oBC394make_precomputable)),_rfctbcn);
  1057. }
  1058.  else if ((((T0*)ms51_473))==((void*)(_rfn))) {
  1059. R=(((T0*)ms25_473))==((void*)(_rfctbcn));
  1060. }
  1061.  else if ((((T0*)ms141_473))==((void*)(_rfn))) {
  1062. /*IF*/if ((((T0*)ms2_473))==((void*)(_rfctbcn))) {
  1063. R=1;
  1064. }
  1065.  else if ((((T0*)ms13_473))==((void*)(_rfctbcn))) {
  1066. R=1;
  1067. }
  1068.  else if ((((T0*)ms10_473))==((void*)(_rfctbcn))) {
  1069. R=1;
  1070. }
  1071. else {
  1072. R=0;
  1073. }
  1074. /*FI*/}
  1075. /*FI*/}
  1076. /*FI*/}
  1077. /*FI*/}
  1078. /*FI*/return R;
  1079. }
  1080. /*No:CREATION_CALL_3.fz_cast_t0_star*/
  1081. int r390use_current(T390* C){
  1082. int R=0;
  1083. /*IF*/if ((r390run_args(C))!=((void*)(NULL))) {
  1084. R=X431use_current(r390run_args(C));
  1085. }
  1086. /*FI*/R=(R)||(X662use_current((((T390*)C))->_writable/*12*/));
  1087. return R;
  1088. }
  1089. void r390check_writable(T390* C,T0* a1){
  1090. T0* _w=NULL;
  1091. C->_run_compound=a1;
  1092. _w=X662to_runnable((((T390*)C))->_writable/*12*/,r390current_type(C));
  1093. /*IF*/if ((_w)==((void*)(NULL))) {
  1094. r683add_position(X662start_position((((T390*)C))->_writable/*12*/));
  1095. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  1096. r683fatal_error(((T683*)(oBC364eh)),b1);
  1097. }/*]*/
  1098. }
  1099. else {
  1100. C->_writable=_w;
  1101. }
  1102. /*FI*/}
  1103. void r390error(T0* a1,T0* a2){
  1104. r683add_position(a1);
  1105. r683error(((T683*)(oBC364eh)),a2);
  1106. }
  1107. /*No:CREATION_CALL_3.fatal_error*/
  1108. /*No:CREATION_CALL_3.end_mark_comment*/
  1109. /*No:CREATION_CALL_3.us_fixed_array*/
  1110. void r390afd_check(T390* C){
  1111. /*IF*/if ((r390arg_count(C))>(0)) {
  1112. X431afd_check(r390run_args(C));
  1113. }
  1114. /*FI*/}
  1115. void r699c_define(T699* C){
  1116. int _id=0;
  1117. _id=X291id((((T699*)C))->_current_type/*12*/);
  1118. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC699cdm)))))->_count)=(0);
  1119. /*]*/
  1120. r7extend(((T7*)(oBC699cdm)),'T');
  1121. r2append_in(_id,oBC699cdm);
  1122. r7extend(((T7*)(oBC699cdm)),'\52');
  1123. r7extend(((T7*)(oBC699cdm)),'i');
  1124. r2append_in(_id,oBC699cdm);
  1125. r7extend(((T7*)(oBC699cdm)),'\50');
  1126. r7extend(((T7*)(oBC699cdm)),'T');
  1127. r2append_in(_id,oBC699cdm);
  1128. r7extend(((T7*)(oBC699cdm)),'\52');
  1129. r7extend(((T7*)(oBC699cdm)),'C');
  1130. r7extend(((T7*)(oBC699cdm)),'\51');
  1131. r324put_c_heading(((T324*)(oBC364cpp)),oBC699cdm);
  1132. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1133. /*]*/
  1134. r7copy(((T7*)(oBC699cdm)),((T0*)ms74_699));
  1135. r2append_in(_id,oBC699cdm);
  1136. r7extend(((T7*)(oBC699cdm)),'\135');
  1137. r7append(((T7*)(oBC699cdm)),((T0*)ms134_470));
  1138. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC699cdm);
  1139. /*]*/
  1140. r699compile_to_c(C);
  1141. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms75_699));
  1142. /*]*/
  1143. }
  1144. void r699add_into(T699* C,T0* a1){
  1145. T0* _a=NULL;
  1146. int _i=0;
  1147. /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  1148. _i=1;
  1149. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  1150. _a=r608item(((T608*)((((T699*)C))->_list/*8*/)),_i);
  1151. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  1152. r608add_last(((T608*)a1),_a);
  1153. }
  1154. /*FI*/_i=(_i)+(1);
  1155. }
  1156. }
  1157. /*FI*/}
  1158. void r699from_runnable(T699* C,T0* a1){
  1159. C->_list=a1;
  1160. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  1161. }
  1162. void r699make(T699* C,T0* a1,T0* a2,T0* a3){
  1163. C->_start_position=a1;
  1164. C->_header_comment=a2;
  1165. C->_list=a3;
  1166. }
  1167. T0* r699check_assertion_mode(void){
  1168. T0* R=NULL;
  1169. R=((T0*)ms73_699);
  1170. return R;
  1171. }
  1172. /*No:CLASS_INVARIANT.start_position*/
  1173. void r699compile_to_c(T699* C){
  1174. int _i=0;
  1175. /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  1176. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_596));
  1177. /*]*/
  1178. _i=1;
  1179. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  1180. /*[IRF3.3set_check_assertion_mode*/((((T324*)(((T324*)(oBC364cpp)))))->_check_assertion_mode)=(r699check_assertion_mode());
  1181. /*]*/
  1182. r348compile_to_c(((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),_i))));
  1183. _i=(_i)+(1);
  1184. }
  1185. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_596));
  1186. /*]*/
  1187. }
  1188. /*FI*/}
  1189. /*No:CLASS_INVARIANT.fz_00*/
  1190. T0*oBC699cdm=NULL;
  1191. /*No:CLASS_INVARIANT.list*/
  1192. /*No:CLASS_INVARIANT.current_type*/
  1193. /*No:CLASS_INVARIANT.header_comment*/
  1194. /*No:COMPILE_TO_C.dos_system*/
  1195. /*No:COMPILE_TO_C.fz_system_se*/
  1196. /*No:COMPILE_TO_C.fz_sys*/
  1197. /*No:COMPILE_TO_C.unix_system*/
  1198. /*No:COMPILE_TO_C.exit_failure_code*/
  1199. /*No:COMPILE_TO_C.vms_system*/
  1200. T0* r111small_eiffel_directory(T111* C){
  1201. if (fBC364small_eiffel_directory==0){
  1202. T0* R=NULL;
  1203. char _slash=0;
  1204. int _i=0;
  1205. fBC364small_eiffel_directory=1;
  1206. R=r111get_environment_variable(C,((T0*)ms121_470));
  1207. /*IF*/if ((R)==((void*)(NULL))) {
  1208. R=r7twin(((T7*)(((T0*)ms121_470))));
  1209. r7to_upper(((T7*)R));
  1210. R=r111get_environment_variable(C,R);
  1211. /*IF*/if ((R)!=((void*)(NULL))) {
  1212. r7to_upper(((T7*)(((T0*)ms121_470))));
  1213. }
  1214. /*FI*/}
  1215. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  1216. R=((T0*)ms1_364);
  1217. }
  1218. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  1219. while (!((_i)<(0))) {
  1220. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1221. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  1222. _i=(_i)-(1);
  1223. }
  1224. else {
  1225. _i=-(1);
  1226. }
  1227. /*FI*/}
  1228. /*IF*/if ((_i)==(0)) {
  1229. r7extend(((T7*)R),'\57');
  1230. }
  1231.  else if (!((r7last(((T7*)R)))==(_slash))) {
  1232. r7extend(((T7*)R),_slash);
  1233. }
  1234. /*FI*/oBC364small_eiffel_directory=R;}
  1235. return oBC364small_eiffel_directory;}
  1236. /*No:COMPILE_TO_C.root_class*/
  1237. T0* r111command_name(void){
  1238. T0* R=NULL;
  1239. R=((T0*)ms58_473);
  1240. return R;
  1241. }
  1242. void r111automat(T111* C){
  1243. T0* _a=NULL;
  1244. int _arg=0;
  1245. _arg=1;
  1246. while (!(((_arg)>(/*(IRF4.9argument_count*/(((T927*)((T927*)(r111command_arguments()))))->_upper/*8*//*)*/))||(((((T111*)C))->_state/*0*/)>(7)))) {
  1247. _a=r111argument(_arg);
  1248. {int z1=(((T111*)C))->_state/*0*/;
  1249.  
  1250. if((0==z1)){
  1251. /*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)!=('\55')) {
  1252. /*IF*/if (r7has_suffix(((T7*)_a),r111o_suffix(C))) {
  1253. r324add_c_object(((T324*)(oBC364cpp)),_a);
  1254. }
  1255.  else if (r7has_suffix(((T7*)_a),((T0*)ms26_364))) {
  1256. r324add_c_object(((T324*)(oBC364cpp)),_a);
  1257. }
  1258.  else if (((((T111*)C))->_root_class/*8*/)==((void*)(NULL))) {
  1259. C->_root_class=_a;
  1260. /*[IRF3.3set_root_class*/((((T590*)(((T590*)(oBC364run_control)))))->_root_class)=(_a);
  1261. /*]*/
  1262. C->_state=2;
  1263. }
  1264. else {
  1265. r324add_c_compiler_option(((T324*)(oBC364cpp)),_a);
  1266. }
  1267. /*FI*/}
  1268.  else if (r7is_equal(ms3_111,_a)) {
  1269. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1270. r111error_level(C,_a);
  1271. }
  1272. else {
  1273. /*[IRF3.3set_boost*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-6);
  1274. /*]*/
  1275. C->_level=_a;
  1276. }
  1277. /*FI*/}
  1278.  else if (r7is_equal(ms4_111,_a)) {
  1279. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1280. r111error_level(C,_a);
  1281. }
  1282. else {
  1283. /*[IRF3.3set_no_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-5);
  1284. /*]*/
  1285. C->_level=_a;
  1286. }
  1287. /*FI*/}
  1288.  else if (r7is_equal(ms5_111,_a)) {
  1289. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1290. r111error_level(C,_a);
  1291. }
  1292. else {
  1293. /*[IRF3.3set_require_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-4);
  1294. /*]*/
  1295. C->_level=_a;
  1296. }
  1297. /*FI*/}
  1298.  else if (r7is_equal(ms6_111,_a)) {
  1299. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1300. r111error_level(C,_a);
  1301. }
  1302. else {
  1303. /*[IRF3.3set_ensure_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-3);
  1304. /*]*/
  1305. C->_level=_a;
  1306. }
  1307. /*FI*/}
  1308.  else if (r7is_equal(ms7_111,_a)) {
  1309. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1310. r111error_level(C,_a);
  1311. }
  1312. else {
  1313. /*[IRF3.3set_invariant_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-2);
  1314. /*]*/
  1315. C->_level=_a;
  1316. }
  1317. /*FI*/}
  1318.  else if (r7is_equal(ms8_111,_a)) {
  1319. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1320. r111error_level(C,_a);
  1321. }
  1322. else {
  1323. /*[IRF3.3set_loop_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-1);
  1324. /*]*/
  1325. C->_level=_a;
  1326. }
  1327. /*FI*/}
  1328.  else if (r7is_equal(ms9_111,_a)) {
  1329. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1330. r111error_level(C,_a);
  1331. }
  1332. else {
  1333. /*[IRF3.3set_all_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(0);
  1334. /*]*/
  1335. C->_level=_a;
  1336. }
  1337. /*FI*/}
  1338.  else if (r7is_equal(ms10_111,_a)) {
  1339. /*IF*/if (((((T111*)C))->_level/*4*/)!=((void*)(NULL))) {
  1340. r111error_level(C,_a);
  1341. }
  1342. else {
  1343. /*[IRF3.3set_debug_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(1);
  1344. /*]*/
  1345. C->_level=_a;
  1346. }
  1347. /*FI*/}
  1348.  else if (r7is_equal(ms11_111,_a)) {
  1349. /*[IRF3.3set_case_insensitive*/((((T818*)(((T818*)(oBC364eiffel_parser)))))->_case_insensitive)=(1);
  1350. /*]*/
  1351. }
  1352.  else if (r7is_equal(ms12_111,_a)) {
  1353. /*[IRF3.3set_no_warning*/((((T683*)(((T683*)(oBC364eh)))))->_no_warning)=(1);
  1354. /*]*/
  1355. }
  1356.  else if (r7is_equal(ms13_111,_a)) {
  1357. /*[IRF3.3set_verbose*/((((T306*)(((T306*)(oBC364echo)))))->_verbose)=(1);
  1358. /*]*/
  1359. }
  1360.  else if (r7is_equal(ms14_111,_a)) {
  1361. /*[IRF3.3enable*/((((T548*)(((T548*)(oBC364gc_handler)))))->_is_on)=(1);
  1362. /*]*/
  1363. }
  1364.  else if (r7is_equal(ms15_111,_a)) {
  1365. r548set_info_flag(((T548*)(oBC364gc_handler)));
  1366. }
  1367.  else if (r7is_equal(ms16_111,_a)) {
  1368. /*[IRF3.3set_no_strip*/((((T324*)(((T324*)(oBC364cpp)))))->_no_strip)=(1);
  1369. /*]*/
  1370. }
  1371.  else if (r7is_equal(ms17_111,_a)) {
  1372. /*[IRF3.3set_no_split*/((((T324*)(((T324*)(oBC364cpp)))))->_no_split)=(1);
  1373. /*]*/
  1374. }
  1375.  else if (r7is_equal(ms18_111,_a)) {
  1376. /*[IRF3.3set_trace*/((((T590*)(((T590*)(oBC364run_control)))))->_trace)=(1);
  1377. /*]*/
  1378. }
  1379.  else if (r7is_equal(ms19_111,_a)) {
  1380. C->_state=3;
  1381. }
  1382.  else if (r7is_equal(ms20_111,_a)) {
  1383. C->_state=4;
  1384. }
  1385.  else if (r7has_prefix(((T7*)_a),((T0*)ms21_111))) {
  1386. r324add_c_library(((T324*)(oBC364cpp)),_a);
  1387. }
  1388.  else if (r7is_equal(ms22_111,_a)) {
  1389. C->_state=1;
  1390. }
  1391.  else if (((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55'))&&((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(2)-(1)]/*)*/)==('o'))) {
  1392. r7remove_first(((T7*)_a),2);
  1393. /*[IRF3.3set_output_name*/((((T324*)(((T324*)(oBC364cpp)))))->_output_name)=(_a);
  1394. /*]*/
  1395. /*[IRF3.3set_oflag*/((((T324*)(((T324*)(oBC364cpp)))))->_oflag)=(((T0*)ms23_111));
  1396. /*]*/
  1397. }
  1398. else {
  1399. r324add_c_compiler_option(((T324*)(oBC364cpp)),_a);
  1400. }
  1401. /*FI*/}
  1402.  else 
  1403. if((1==z1)){
  1404. /*[IRF3.3set_output_name*/((((T324*)(((T324*)(oBC364cpp)))))->_output_name)=(_a);
  1405. /*]*/
  1406. C->_state=0;
  1407. }
  1408.  else 
  1409. if((2==z1)){
  1410. /*IF*/if ((((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55'))||(r7has_suffix(((T7*)_a),((T0*)ms26_364))))||(r7has_suffix(((T7*)_a),r111o_suffix(C)))) {
  1411. _arg=(_arg)-(1);
  1412. }
  1413. else {
  1414. C->_start_proc=_a;
  1415. }
  1416. /*FI*/C->_state=0;
  1417. }
  1418.  else 
  1419. if((3==z1)){
  1420. /*[IRF3.3clear*/((((T7*)(((T7*)(r324c_compiler(((T324*)(oBC364cpp))))))))->_count)=(0);
  1421. /*]*/
  1422. r7append(((T7*)(r324c_compiler(((T324*)(oBC364cpp))))),_a);
  1423. C->_state=0;
  1424. }
  1425.  else {/*[IRF3.3set_cecil_path*/((((T590*)(((T590*)(oBC364run_control)))))->_cecil_path)=(_a);
  1426. /*]*/
  1427. C->_state=0;
  1428. }}
  1429. _arg=(_arg)+(1);
  1430. }
  1431. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1432. /*IF*/if ((((T590*)((T590*)(oBC364run_control))))->_trace/*4*/) {
  1433. /*IF*/if (r590boost(((T590*)(oBC364run_control)))) {
  1434. /*[IRF3.3set_no_check*/((((T590*)(((T590*)(oBC364run_control)))))->_level)=(-5);
  1435. /*]*/
  1436. }
  1437. /*FI*/}
  1438. /*FI*/r604compile_to_c(((T604*)(oBC364small_eiffel)),(((T111*)C))->_root_class/*8*/,(((T111*)C))->_start_proc/*12*/);
  1439. }
  1440. /*FI*/}
  1441. /*No:COMPILE_TO_C.amiga_system*/
  1442. void r111make(T111* C){
  1443. C->_start_proc=((T0*)ms89_473);
  1444. /*[IRF3.3set_drop_comments*/((((T818*)(((T818*)(oBC364eiffel_parser)))))->_drop_comments)=(1);
  1445. /*]*/
  1446. /*IF*/if ((/*(IRF4.9argument_count*/(((T927*)((T927*)(r111command_arguments()))))->_upper/*8*//*)*/)<(1)) {
  1447. r441put_string(((T441*)(oBC1std_error)),((T0*)ms1_111));
  1448. r111print_help(C,((T0*)ms2_111));
  1449. exit(1);
  1450. }
  1451. else {
  1452. r111automat(C);
  1453. }
  1454. /*FI*/}
  1455. /*No:COMPILE_TO_C.nb_errors*/
  1456. /*No:COMPILE_TO_C.help_suffix*/
  1457. T0*oBC364help_file_name=NULL;
  1458. T0*oBC1std_error=NULL;
  1459. void r111add_directory(T111* C,T0* a1,T0* a2){
  1460. /*IF*/if ((((T0*)ms17_364))==((void*)(r111system_name(C)))) {
  1461. r7set_last(((T7*)a1),'\57');
  1462. r7append(((T7*)a1),a2);
  1463. r7set_last(((T7*)a1),'\57');
  1464. }
  1465.  else if ((((T0*)ms19_364))==((void*)(r111system_name(C)))) {
  1466. r7set_last(((T7*)a1),'\134');
  1467. r7append(((T7*)a1),a2);
  1468. r7set_last(((T7*)a1),'\134');
  1469. }
  1470.  else if ((((T0*)ms15_364))==((void*)(r111system_name(C)))) {
  1471. r7set_last(((T7*)a1),'\72');
  1472. r7append(((T7*)a1),a2);
  1473. r7set_last(((T7*)a1),'\72');
  1474. }
  1475.  else if ((((T0*)ms14_364))==((void*)(r111system_name(C)))) {
  1476. r7set_last(((T7*)a1),'\134');
  1477. r7append(((T7*)a1),a2);
  1478. r7set_last(((T7*)a1),'\134');
  1479. }
  1480.  else if ((((T0*)ms16_364))==((void*)(r111system_name(C)))) {
  1481. r7set_last(((T7*)a1),'\134');
  1482. r7append(((T7*)a1),a2);
  1483. r7set_last(((T7*)a1),'\134');
  1484. }
  1485.  else if ((((T0*)ms13_364))==((void*)(r111system_name(C)))) {
  1486. r7set_last(((T7*)a1),'\57');
  1487. r7append(((T7*)a1),a2);
  1488. r7set_last(((T7*)a1),'\57');
  1489. }
  1490.  else if ((((T0*)ms18_364))==((void*)(r111system_name(C)))) {
  1491. r7set_last(((T7*)a1),'\135');
  1492. r7remove_last(((T7*)a1),1);
  1493. r7set_last(((T7*)a1),'\56');
  1494. r7append(((T7*)a1),a2);
  1495. r7set_last(((T7*)a1),'\135');
  1496. }
  1497. /*FI*/}
  1498. T0*oBC1std_output=NULL;
  1499. /*No:COMPILE_TO_C.level*/
  1500. /*No:COMPILE_TO_C.windows_system*/
  1501. /*No:COMPILE_TO_C.us_compile_to_c*/
  1502. T0* r111get_environment_variable(T111* C,T0* a1){
  1503. T0* R=NULL;
  1504. void* _p=0;
  1505. _p=r7to_external(((T7*)a1));
  1506. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  1507. return R;
  1508. }
  1509. void r111print_help(T111* C,T0* a1){
  1510. r7copy(((T7*)(oBC364help_file_name)),r111small_eiffel_directory(C));
  1511. r111add_directory(C,oBC364help_file_name,((T0*)ms2_364));
  1512. r7append(((T7*)(oBC364help_file_name)),a1);
  1513. /*IF*/if (!(r7has_suffix(((T7*)(oBC364help_file_name)),((T0*)ms39_364)))) {
  1514. r7append(((T7*)(oBC364help_file_name)),((T0*)ms39_364));
  1515. }
  1516. /*FI*//*IF*/if (!(r111file_exists(oBC364help_file_name))) {
  1517. r306w_put_string(((T0*)ms3_364));
  1518. r306w_put_string(oBC364help_file_name);
  1519. r306w_put_string(((T0*)ms242_470));
  1520. exit(1);
  1521. }
  1522. /*FI*/r830append_file(((T830*)(oBC1std_output)),oBC364help_file_name);
  1523. }
  1524. int fBC1command_arguments=0;
  1525. T0*oBC1command_arguments=NULL;
  1526. T0* r111command_arguments(void){
  1527. if (fBC1command_arguments==0){
  1528. T0* R=NULL;
  1529. T0* _arg=NULL;
  1530. int _i=0;
  1531. fBC1command_arguments=1;
  1532. _i=se_argc;
  1533. {T927*n=malloc(sizeof(*n));
  1534. *n=M927;
  1535. r927make(n,_i);
  1536. R=(T0*)n;
  1537. }
  1538. while (!((_i)==(0))) {
  1539. _i=(_i)-(1);
  1540. _arg=((T0*)e2s(se_argv[_i]));
  1541. /*[IRF3.5put*/((((T927*)((T927*)R)))->_storage/*0*/)[_i]=(_arg);
  1542. /*]*/
  1543. }
  1544. oBC1command_arguments=R;}
  1545. return oBC1command_arguments;}
  1546. /*No:COMPILE_TO_C.us_make*/
  1547. T0* r111system_name(T111* C){
  1548. if (fBC364system_name==0){
  1549. T0* R=NULL;
  1550. int _i=0;
  1551. fBC364system_name=1;
  1552. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1553. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  1554. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  1555. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1556. r7extend(((T7*)(oBC364tmp_path)),'\57');
  1557. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1558. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1559. }
  1560. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1561. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1562. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  1563. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  1564. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1565. r7extend(((T7*)(oBC364tmp_path)),'\134');
  1566. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1567. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1568. }
  1569. /*FI*/}
  1570. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1571. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1572. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  1573. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  1574. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1575. r7extend(((T7*)(oBC364tmp_path)),'\72');
  1576. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1577. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1578. }
  1579. /*FI*/}
  1580. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1581. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1582. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  1583. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  1584. r7remove_last(((T7*)(oBC364tmp_path)),1);
  1585. r7extend(((T7*)(oBC364tmp_path)),'\56');
  1586. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1587. r7extend(((T7*)(oBC364tmp_path)),'\135');
  1588. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1589. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1590. }
  1591. /*FI*/}
  1592. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1593. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1594. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1595. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1596. }
  1597. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1598. r306w_put_string(((T0*)ms20_364));
  1599. r306w_put_string(((T0*)ms127_470));
  1600. r306w_put_string(((T0*)ms21_364));
  1601. r306w_put_string(r111small_eiffel_directory(C));
  1602. r306w_put_string(((T0*)ms242_470));
  1603. exit(1);
  1604. }
  1605. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1606. R=oBC762last_string;
  1607. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1608. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1609. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1610. r306w_put_string(((T0*)ms22_364));
  1611. r306w_put_string(oBC364tmp_path);
  1612. r306w_put_string(((T0*)ms23_364));
  1613. _i=1;
  1614. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1615. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1616. r306w_put_character('\n');
  1617. _i=(_i)+(1);
  1618. }
  1619. }
  1620. else {
  1621. R=r52item(((T52*)(oBC364system_list)),_i);
  1622. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1623. r306put_string(((T306*)(oBC364echo)),R);
  1624. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1625. }
  1626. /*FI*/oBC364system_name=R;}
  1627. return oBC364system_name;}
  1628. /*No:COMPILE_TO_C.fz_b0*/
  1629. /*No:COMPILE_TO_C.fz_se*/
  1630. /*No:COMPILE_TO_C.os2_system*/
  1631. /*No:COMPILE_TO_C.state*/
  1632. int r111file_exists(T0* a1){
  1633. int R=0;
  1634. R=r670is_readable(a1);
  1635. return R;
  1636. }
  1637. /*No:COMPILE_TO_C.argument_count*/
  1638. /*No:COMPILE_TO_C.macintosh_system*/
  1639. /*No:COMPILE_TO_C.fz_dot*/
  1640. void r111error_level(T111* C,T0* a1){
  1641. C->_state=9;
  1642. /*[IRF3.6append*/{T0* b1=r111command_name();
  1643. r7append(((T7*)(oBC683explanation)),b1);
  1644. }/*]*/
  1645. /*[IRF3.6append*/{T0* b1=((T0*)ms1_765);
  1646. r7append(((T7*)(oBC683explanation)),b1);
  1647. }/*]*/
  1648. /*[IRF3.6append*/{T0* b1=(((T111*)C))->_level/*4*/;
  1649. r7append(((T7*)(oBC683explanation)),b1);
  1650. }/*]*/
  1651. /*[IRF3.6append*/{T0* b1=((T0*)ms2_765);
  1652. r7append(((T7*)(oBC683explanation)),b1);
  1653. }/*]*/
  1654. /*[IRF3.6append*/{T0* b1=a1;
  1655. r7append(((T7*)(oBC683explanation)),b1);
  1656. }/*]*/
  1657. /*[IRF3.6append*/{T0* b1=((T0*)ms67_470);
  1658. r7append(((T7*)(oBC683explanation)),b1);
  1659. }/*]*/
  1660. r683print_as_error(((T683*)(oBC364eh)));
  1661. }
  1662. /*No:COMPILE_TO_C.start_proc*/
  1663. /*No:COMPILE_TO_C.c_suffix*/
  1664. T0* r111argument(int a1){
  1665. T0* R=NULL;
  1666. R=/*(IRF4.6item*/((((T927*)((T927*)(r111command_arguments()))))->_storage/*0*/)[a1]/*)*/;
  1667. return R;
  1668. }
  1669. T0* r111o_suffix(T111* C){
  1670. if (fBC364o_suffix==0){
  1671. T0* R=NULL;
  1672. T0* _sn=NULL;
  1673. fBC364o_suffix=1;
  1674. _sn=r111system_name(C);
  1675. {T7*n=malloc(sizeof(*n));
  1676. *n=M7;
  1677. r7make(n,4);
  1678. R=(T0*)n;
  1679. }
  1680. r7copy(((T7*)(oBC364tmp_path)),r111small_eiffel_directory(C));
  1681. r111add_directory(C,oBC364tmp_path,((T0*)ms126_470));
  1682. r7append(((T7*)(oBC364tmp_path)),((T0*)ms28_364));
  1683. r7append(((T7*)(oBC364tmp_path)),_sn);
  1684. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1685. r675read_line_in(((T675*)(oBC364tmp_file_read)),R);
  1686. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1687. oBC364o_suffix=R;}
  1688. return oBC364o_suffix;}
  1689. int r906id(T906* C){
  1690. int R=0;
  1691. R=X291id((((T906*)C))->_current_type/*4*/);
  1692. return R;
  1693. }
  1694. /*No:RUN_FEATURE_7.arguments*/
  1695. /*No:RUN_FEATURE_7.c_prototype*/
  1696. /*No:RUN_FEATURE_7.ucs_true*/
  1697. /*No:RUN_FEATURE_7.us_copy*/
  1698. void r906c_define(T906* C){
  1699. T0* _bcn=NULL;
  1700. T0* _native=NULL;
  1701. T0* _bf=NULL;
  1702. _bf=(((T906*)C))->_base_feature/*44*/;
  1703. _native=(((T883*)((T883*)_bf)))->_native/*48*/;
  1704. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T883*)((T883*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1705. X845c_define_procedure(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)((T883*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  1706. }
  1707. /*No:RUN_FEATURE_7.actuals_clients*/
  1708. void r906define_closing(T906* C){
  1709. /*IF*/if (r906use_current(C)) {
  1710. r324current_class_invariant(((T324*)(oBC364cpp)),(((T906*)C))->_current_type/*4*/);
  1711. }
  1712. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1713. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1714. r633compile_to_c(((T633*)((((T906*)C))->_ensure_assertion/*36*/)));
  1715. }
  1716. /*FI*/}
  1717. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1718. /*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
  1719. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
  1720. /*]*/
  1721. }/*]*/
  1722. }
  1723. /*FI*/}
  1724. /*No:RUN_FEATURE_7.ucs_in_computation*/
  1725. void r906make(T906* C,T0* a1,T0* a2,T0* a3){
  1726. C->_current_type=a1;
  1727. C->_name=a2;
  1728. C->_base_feature=a3;
  1729. r199put(((T199*)((((T355*)((T355*)(r906run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1730. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1731. C->_use_current_state=1005;
  1732. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1733. r906initialize(C);
  1734. r604pop(((T604*)(oBC364small_eiffel)));
  1735. }
  1736. void r906std_compute_use_current(T906* C){
  1737. /*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  1738. /*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1739. /*IF*/if (r567use_current(((T567*)((((T906*)C))->_require_assertion/*28*/)))) {
  1740. C->_use_current_state=1004;
  1741. }
  1742. /*FI*/}
  1743. /*FI*/}
  1744. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  1745. /*IF*/if (((((T906*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1746. /*IF*/if (r592use_current(((T592*)((((T906*)C))->_routine_body/*32*/)))) {
  1747. C->_use_current_state=1004;
  1748. }
  1749. /*FI*/}
  1750. /*FI*/}
  1751. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  1752. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1753. /*IF*/if (r633use_current(((T633*)((((T906*)C))->_ensure_assertion/*36*/)))) {
  1754. C->_use_current_state=1004;
  1755. }
  1756. /*FI*/}
  1757. /*FI*/}
  1758. /*FI*//*IF*/if (((((T906*)C))->_use_current_state/*40*/)==(1006)) {
  1759. C->_use_current_state=1003;
  1760. }
  1761. /*FI*/}
  1762. /*No:RUN_FEATURE_7.name*/
  1763. void r906mapping_name(T906* C){
  1764. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1765. char b1='r';
  1766. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1767. }/*]*/
  1768. /*]*/
  1769. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r906id(C));
  1770. /*]*/
  1771. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T906*)C))->_name/*16*/));
  1772. /*]*/
  1773. }
  1774. int r906arg_count(T906* C){
  1775. int R=0;
  1776. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1777. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1778. }
  1779. /*FI*/return R;
  1780. }
  1781. void r906routine_afd_check(T906* C){
  1782. /*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1783. r567afd_check(((T567*)((((T906*)C))->_require_assertion/*28*/)));
  1784. }
  1785. /*FI*//*IF*/if (((((T906*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1786. r592afd_check(((T592*)((((T906*)C))->_routine_body/*32*/)));
  1787. }
  1788. /*FI*//*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1789. r633afd_check(((T633*)((((T906*)C))->_ensure_assertion/*36*/)));
  1790. }
  1791. /*FI*/}
  1792. /*No:RUN_FEATURE_7.local_vars*/
  1793. void r906default_mapping_procedure(T906* C){
  1794. r906mapping_name(C);
  1795. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1796. char b1='\50';
  1797. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1798. }/*]*/
  1799. /*]*/
  1800. r324put_target_as_target(((T324*)(oBC364cpp)));
  1801. /*IF*/if ((r906arg_count(C))>(0)) {
  1802. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1803. char b1='\54';
  1804. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1805. }/*]*/
  1806. /*]*/
  1807. r324put_arguments(((T324*)(oBC364cpp)));
  1808. }
  1809. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  1810. /*]*/
  1811. }
  1812. /*No:RUN_FEATURE_7.base_feature*/
  1813. void r906define_opening(T906* C){
  1814. T0* _t=NULL;
  1815. int _i=0;
  1816. /*IF*/if (((((T906*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1817. _t=X291run_type((((T906*)C))->_result_type/*24*/);
  1818. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1819. /*]*/
  1820. X291c_type_for_result_in(_t,oBC496c_code);
  1821. r7extend(((T7*)(oBC496c_code)),'\40');
  1822. r7extend(((T7*)(oBC496c_code)),'R');
  1823. r7extend(((T7*)(oBC496c_code)),'\75');
  1824. X291c_initialize_in(_t,oBC496c_code);
  1825. r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
  1826. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  1827. /*]*/
  1828. }
  1829. /*FI*//*IF*//*AF*//*AE*/
  1830. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1831. /*IF*/if (((((T906*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1832. r633compile_to_c_old(((T633*)((((T906*)C))->_ensure_assertion/*36*/)));
  1833. }
  1834. /*FI*/}
  1835. /*FI*//*IF*//*AF*//*AE*/
  1836. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1837. r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
  1838. /*IF*/if (r906use_current(C)) {
  1839. /*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
  1840. T0* b1=(((T906*)C))->_current_type/*4*/;
  1841. r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
  1842. }/*]*/
  1843. }
  1844. /*FI*/_i=1;
  1845. while (!((_i)>(r906arg_count(C)))) {
  1846. _t=X291run_type(r31type(((T31*)((((T906*)C))->_arguments/*20*/)),_i));
  1847. r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
  1848. _i=(_i)+(1);
  1849. }
  1850. /*IF*/if (((((T906*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1851. /*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
  1852. T0* b1=X291run_type((((T906*)C))->_result_type/*24*/);
  1853. r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
  1854. }/*]*/
  1855. }
  1856. /*FI*//*IF*//*AF*//*AE*/
  1857. /*FI*/}
  1858. /*FI*//*IF*/if (((((T906*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1859. r567compile_to_c(((T567*)((((T906*)C))->_require_assertion/*28*/)));
  1860. }
  1861. /*FI*/}
  1862. /*No:RUN_FEATURE_7.start_position*/
  1863. /*No:RUN_FEATURE_7.fz_00*/
  1864. void r906c_define_with_body(T906* C,T0* a1){
  1865. r906define_prototype(C);
  1866. r906define_opening(C);
  1867. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  1868. /*]*/
  1869. r906define_closing(C);
  1870. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  1871. /*]*/
  1872. }
  1873. /*No:RUN_FEATURE_7.ensure_assertion*/
  1874. int r906is_exported_in(T906* C,T0* a1){
  1875. int R=0;
  1876. R=r636gives_permission_to(((T636*)(r906clients(C))),a1);
  1877. return R;
  1878. }
  1879. void r906compute_use_current(T906* C){
  1880. /*IF*/if (r883use_current(((T883*)((((T906*)C))->_base_feature/*44*/)))) {
  1881. C->_use_current_state=1004;
  1882. }
  1883. else {
  1884. r906std_compute_use_current(C);
  1885. }
  1886. /*FI*/}
  1887. /*No:RUN_FEATURE_7.fz_12*/
  1888. /*No:RUN_FEATURE_7.result_type*/
  1889. /*No:RUN_FEATURE_7.is_static*/
  1890. /*No:RUN_FEATURE_7.fz_14*/
  1891. void r906add_client(T906* C,T0* a1){
  1892. int _i=0;
  1893. /*IF*/if (((((T906*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1894. {T187*n=malloc(sizeof(*n));
  1895. *n=M187;
  1896. r187with_capacity(n,4);
  1897. C->_actuals_clients=(T0*)n;
  1898. }
  1899. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  1900. }
  1901. else {
  1902. _i=r187fast_index_of(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  1903. /*IF*/if ((_i)>((((T187*)((T187*)((((T906*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1904. r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
  1905. }
  1906. /*FI*/}
  1907. /*FI*/r355add_client(((T355*)(r906run_class(C))),a1);
  1908. }
  1909. /*No:RUN_FEATURE_7.require_assertion*/
  1910. /*No:RUN_FEATURE_7.use_current_state*/
  1911. void r906external_prototype(T906* C,T0* a1){
  1912. T0* _t=NULL;
  1913. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1914. /*]*/
  1915. r7append(((T7*)(oBC496c_code)),((T0*)ms2_496));
  1916. _t=(((T906*)C))->_result_type/*24*/;
  1917. /*IF*/if ((_t)==((void*)(NULL))) {
  1918. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1919. }
  1920. else {
  1921. X291c_type_for_external_in(_t,oBC496c_code);
  1922. }
  1923. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  1924. r7append(((T7*)(oBC496c_code)),X279external_c_name(a1));
  1925. r7extend(((T7*)(oBC496c_code)),'\50');
  1926. /*IF*/if (X279use_current(a1)) {
  1927. X291c_type_for_external_in((((T906*)C))->_current_type/*4*/,oBC496c_code);
  1928. r7extend(((T7*)(oBC496c_code)),'\40');
  1929. r7extend(((T7*)(oBC496c_code)),'C');
  1930. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1931. r7extend(((T7*)(oBC496c_code)),'\54');
  1932. }
  1933. /*FI*/}
  1934. /*FI*//*IF*/if (((((T906*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1935. /*IF*/if (!(X279use_current(a1))) {
  1936. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1937. }
  1938. /*FI*/}
  1939. else {
  1940. r31external_prototype(((T31*)((((T906*)C))->_arguments/*20*/)),oBC496c_code);
  1941. }
  1942. /*FI*/r7append(((T7*)(oBC496c_code)),((T0*)ms3_496));
  1943. r324swap_on_h(((T324*)(oBC364cpp)));
  1944. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  1945. /*]*/
  1946. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1947. /*]*/
  1948. }
  1949. /*No:RUN_FEATURE_7.can_be_dropped*/
  1950. /*No:RUN_FEATURE_7.current_type*/
  1951. T0* r906run_class(T906* C){
  1952. T0* R=NULL;
  1953. R=X291run_class((((T906*)C))->_current_type/*4*/);
  1954. return R;
  1955. }
  1956. /*No:RUN_FEATURE_7.static_value_mem*/
  1957. void r906define_prototype(T906* C){
  1958. int _mem_id=0;
  1959. _mem_id=r906id(C);
  1960. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1961. /*]*/
  1962. /*IF*/if (((((T906*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1963. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1964. }
  1965. else {
  1966. X291c_type_for_result_in(X291run_type((((T906*)C))->_result_type/*24*/),oBC496c_code);
  1967. }
  1968. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  1969. r7extend(((T7*)(oBC496c_code)),'r');
  1970. r2append_in(_mem_id,oBC496c_code);
  1971. X776mapping_c_in((((T906*)C))->_name/*16*/,oBC496c_code);
  1972. r7extend(((T7*)(oBC496c_code)),'\50');
  1973. /*IF*/if (r906use_current(C)) {
  1974. X291c_type_for_target_in((((T906*)C))->_current_type/*4*/,oBC496c_code);
  1975. r7extend(((T7*)(oBC496c_code)),'\40');
  1976. r7extend(((T7*)(oBC496c_code)),'C');
  1977. /*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1978. r7extend(((T7*)(oBC496c_code)),'\54');
  1979. }
  1980. /*FI*/}
  1981. /*FI*//*IF*/if (((((T906*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1982. /*IF*/if (!(r906use_current(C))) {
  1983. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1984. }
  1985. /*FI*/}
  1986. else {
  1987. r31compile_to_c_in(((T31*)((((T906*)C))->_arguments/*20*/)),oBC496c_code);
  1988. }
  1989. /*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
  1990. r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
  1991. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1992. /*]*/
  1993. }
  1994. /*No:RUN_FEATURE_7.ucs_not_computed*/
  1995. void r906fall_down(T906* C){
  1996. T0* _rf=NULL;
  1997. T0* _sub_name=NULL;
  1998. T0* _sub_bc=NULL;
  1999. T0* _current_bc=NULL;
  2000. T0* _sub_rc=NULL;
  2001. T0* _current_rc=NULL;
  2002. int _i=0;
  2003. T0* _running=NULL;
  2004. _current_rc=X291run_class((((T906*)C))->_current_type/*4*/);
  2005. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  2006. /*IF*/if ((_running)!=((void*)(NULL))) {
  2007. _current_bc=X291base_class((((T906*)C))->_current_type/*4*/);
  2008. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  2009. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  2010. _sub_rc=r396item(((T396*)_running),_i);
  2011. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  2012. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  2013. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T906*)C))->_name/*16*/);
  2014. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  2015. }
  2016. /*FI*/_i=(_i)+(1);
  2017. }
  2018. }
  2019. /*FI*/}
  2020. /*No:RUN_FEATURE_7.routine_body*/
  2021. /*No:RUN_FEATURE_7.fz_void*/
  2022. /*No:RUN_FEATURE_7.ucs_false*/
  2023. /*No:RUN_FEATURE_7.is_pre_computable*/
  2024. T0* r906clients(T906* C){
  2025. T0* R=NULL;
  2026. T0* _bfbc=NULL;
  2027. T0* _bc=NULL;
  2028. /*IF*/if (((((T906*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  2029. _bc=X291base_class((((T906*)C))->_current_type/*4*/);
  2030. _bfbc=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  2031. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  2032. R=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_clients/*20*/;
  2033. }
  2034. else {
  2035. R=r605clients_for(((T605*)_bc),(((T906*)C))->_name/*16*/);
  2036. }
  2037. /*FI*/C->_clients_memory=R;
  2038. }
  2039. else {
  2040. R=(((T906*)C))->_clients_memory/*8*/;
  2041. }
  2042. /*FI*/return R;
  2043. }
  2044. int r906use_current(T906* C){
  2045. int R=0;
  2046. {int z1=(((T906*)C))->_use_current_state/*40*/;
  2047.  
  2048. if((1004==z1)){
  2049. R=1;
  2050. }
  2051.  else 
  2052. if((1003==z1)){
  2053. }
  2054.  else 
  2055. if((1005==z1)){
  2056. C->_use_current_state=1006;
  2057. r906compute_use_current(C);
  2058. R=r906use_current(C);
  2059. }
  2060.  else {R=1;
  2061. }}
  2062. return R;
  2063. }
  2064. void r906mapping_c(T906* C){
  2065. T0* _bcn=NULL;
  2066. T0* _native=NULL;
  2067. T0* _bf=NULL;
  2068. _bf=(((T906*)C))->_base_feature/*44*/;
  2069. _native=(((T883*)((T883*)_bf)))->_native/*48*/;
  2070. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T883*)((T883*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  2071. X845c_mapping_procedure(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)((T883*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  2072. }
  2073. /*No:RUN_FEATURE_7.address_of*/
  2074. void r906put_tag(T906* C){
  2075. T0* _fn=NULL;
  2076. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2077. char b1='\42';
  2078. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2079. }/*]*/
  2080. /*]*/
  2081. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  2082. X776cpp_put_infix_or_prefix(_fn);
  2083. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  2084. /*]*/
  2085. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  2086. /*]*/
  2087. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/);
  2088. /*]*/
  2089. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2090. char b1='\42';
  2091. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2092. }/*]*/
  2093. /*]*/
  2094. }
  2095. /*No:RUN_FEATURE_7.clients_memory*/
  2096. void r906initialize(T906* C){
  2097. C->_arguments=(((T883*)((T883*)((((T906*)C))->_base_feature/*44*/))))->_arguments/*24*/;
  2098. /*IF*/if ((((((T906*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  2099. C->_arguments=r31to_runnable(((T31*)((((T906*)C))->_arguments/*20*/)),(((T906*)C))->_current_type/*4*/);
  2100. }
  2101. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  2102. /*IF*/if (((((T0*)ms64_473))==((void*)(X776to_string((((T906*)C))->_name/*16*/))))&&(X291is_expanded((((T906*)C))->_current_type/*4*/))) {
  2103. }
  2104. else {
  2105. C->_require_assertion=r883run_require((T0*)C);
  2106. }
  2107. /*FI*/}
  2108. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  2109. C->_ensure_assertion=r883run_ensure((T0*)C);
  2110. }
  2111. /*FI*/}
  2112. /*No:RUN_FEATURE_7.afd_check*/
  2113. T0* r349to_runnable_integer(T349* C,T0* a1){
  2114. T0* R=NULL;
  2115. T0* _e=NULL;
  2116. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  2117. C->_e_when=a1;
  2118. _e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  2119. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_e)))) {
  2120. C->_expression=_e;
  2121. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  2122. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  2123. }
  2124. else {
  2125. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms60_470));
  2126. }
  2127. /*FI*/R=(T0*)C;
  2128. }
  2129. else {
  2130. {T349*n=malloc(sizeof(*n));
  2131. *n=M349;
  2132. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  2133. /*]*/
  2134. R=(T0*)n;
  2135. }
  2136. R=r349to_runnable_integer(((T349*)R),a1);
  2137. }
  2138. /*FI*/return R;
  2139. }
  2140. /*No:WHEN_ITEM_1.make*/
  2141. /*No:WHEN_ITEM_1.expression*/
  2142. T0* r349start_position(T349* C){
  2143. T0* R=NULL;
  2144. R=X662start_position((((T349*)C))->_expression/*8*/);
  2145. return R;
  2146. }
  2147. /*No:WHEN_ITEM_1.clear_e_when*/
  2148. /*No:WHEN_ITEM_1.expression_value*/
  2149. /*No:WHEN_ITEM_1.fz_bcv*/
  2150. T0* r349twin(T349* C){
  2151. T0* R=NULL;
  2152. R=malloc(sizeof(*C));
  2153. *((T349*)R)=*C;
  2154. return R;
  2155. }
  2156. /*No:WHEN_ITEM_1.current_type*/
  2157. /*No:WHEN_ITEM_1.fz_biv*/
  2158. void r349error(T0* a1,T0* a2){
  2159. r683add_position(a1);
  2160. r683error(((T683*)(oBC364eh)),a2);
  2161. }
  2162. T0* r349to_runnable_character(T349* C,T0* a1){
  2163. T0* R=NULL;
  2164. T0* _e=NULL;
  2165. /*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
  2166. C->_e_when=a1;
  2167. _e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  2168. /*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_character(X662result_type(_e)))) {
  2169. C->_expression=_e;
  2170. C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
  2171. r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
  2172. }
  2173. else {
  2174. r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms58_470));
  2175. }
  2176. /*FI*/R=(T0*)C;
  2177. }
  2178. else {
  2179. {T349*n=malloc(sizeof(*n));
  2180. *n=M349;
  2181. /*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
  2182. /*]*/
  2183. R=(T0*)n;
  2184. }
  2185. R=r349to_runnable_character(((T349*)R),a1);
  2186. }
  2187. /*FI*/return R;
  2188. }
  2189. /*No:WHEN_ITEM_1.e_when*/
  2190. /*No:EIFFEL_PARSER.cc*/
  2191. /*No:EIFFEL_PARSER.ok*/
  2192. void r818a_r5(T818* C,T0* a1){
  2193. T0* _sp=NULL;
  2194. T0* _infix_minus=NULL;
  2195. T0* _infix_plus=NULL;
  2196. /*IF*/if (r818skip1(C,'\53')) {
  2197. {T627*n=malloc(sizeof(*n));
  2198. *n=M627;
  2199. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2200. _sp=(T0*)n;
  2201. }
  2202. /*IF*/if (r818a_e5(C)) {
  2203. {T253*n=malloc(sizeof(*n));
  2204. *n=M253;
  2205. r253make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2206. _infix_plus=(T0*)n;
  2207. }
  2208. r818a_r5(C,_infix_plus);
  2209. }
  2210. else {
  2211. r818err_exp(_sp,((T0*)ms43_473));
  2212. }
  2213. /*FI*/}
  2214.  else if (r818skip1(C,'\55')) {
  2215. {T627*n=malloc(sizeof(*n));
  2216. *n=M627;
  2217. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2218. _sp=(T0*)n;
  2219. }
  2220. /*IF*/if (r818a_e5(C)) {
  2221. {T574*n=malloc(sizeof(*n));
  2222. *n=M574;
  2223. r574make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2224. _infix_minus=(T0*)n;
  2225. }
  2226. r818a_r5(C,_infix_minus);
  2227. }
  2228. else {
  2229. r818err_exp(_sp,((T0*)ms37_473));
  2230. }
  2231. /*FI*/}
  2232. else {
  2233. C->_last_expression=a1;
  2234. }
  2235. /*FI*/}
  2236. int r818a_e5(T818* C){
  2237. int R=0;
  2238. R=r818a_e6(C);
  2239. r818a_r6(C,(((T818*)C))->_last_expression/*97*/);
  2240. return R;
  2241. }
  2242. /*No:EIFFEL_PARSER.arguments*/
  2243. /*No:EIFFEL_PARSER.fz_creation*/
  2244. /*No:EIFFEL_PARSER.em14*/
  2245. int r818a_binary(T818* C,T0* a1){
  2246. int R=0;
  2247. R=1;
  2248. /*IF*/if (r818skip2(C,'\74','\75')) {
  2249. {T454*n=malloc(sizeof(*n));
  2250. *n=M454;
  2251. r454make(n,((T0*)ms35_473),a1);
  2252. C->_last_binary=(T0*)n;
  2253. }
  2254. }
  2255.  else if (r818skip2(C,'\76','\75')) {
  2256. {T454*n=malloc(sizeof(*n));
  2257. *n=M454;
  2258. r454make(n,((T0*)ms32_473),a1);
  2259. C->_last_binary=(T0*)n;
  2260. }
  2261. }
  2262.  else if (r818skip2(C,'\57','\57')) {
  2263. {T454*n=malloc(sizeof(*n));
  2264. *n=M454;
  2265. r454make(n,((T0*)ms45_818),a1);
  2266. C->_last_binary=(T0*)n;
  2267. }
  2268. }
  2269.  else if (r818skip2(C,'\134','\134')) {
  2270. {T454*n=malloc(sizeof(*n));
  2271. *n=M454;
  2272. r454make(n,((T0*)ms46_818),a1);
  2273. C->_last_binary=(T0*)n;
  2274. }
  2275. }
  2276.  else if (r818skip1(C,'\53')) {
  2277. {T454*n=malloc(sizeof(*n));
  2278. *n=M454;
  2279. r454make(n,((T0*)ms43_473),a1);
  2280. C->_last_binary=(T0*)n;
  2281. }
  2282. }
  2283.  else if (r818skip1(C,'\55')) {
  2284. {T454*n=malloc(sizeof(*n));
  2285. *n=M454;
  2286. r454make(n,((T0*)ms37_473),a1);
  2287. C->_last_binary=(T0*)n;
  2288. }
  2289. }
  2290.  else if (r818skip1(C,'\52')) {
  2291. {T454*n=malloc(sizeof(*n));
  2292. *n=M454;
  2293. r454make(n,((T0*)ms38_473),a1);
  2294. C->_last_binary=(T0*)n;
  2295. }
  2296. }
  2297.  else if (r818skip1(C,'\57')) {
  2298. {T454*n=malloc(sizeof(*n));
  2299. *n=M454;
  2300. r454make(n,((T0*)ms47_473),a1);
  2301. C->_last_binary=(T0*)n;
  2302. }
  2303. }
  2304.  else if (r818skip1(C,'\76')) {
  2305. {T454*n=malloc(sizeof(*n));
  2306. *n=M454;
  2307. r454make(n,((T0*)ms33_473),a1);
  2308. C->_last_binary=(T0*)n;
  2309. }
  2310. }
  2311.  else if (r818skip1(C,'\74')) {
  2312. {T454*n=malloc(sizeof(*n));
  2313. *n=M454;
  2314. r454make(n,((T0*)ms36_473),a1);
  2315. C->_last_binary=(T0*)n;
  2316. }
  2317. }
  2318.  else if (r818skip1(C,'\136')) {
  2319. {T454*n=malloc(sizeof(*n));
  2320. *n=M454;
  2321. r454make(n,((T0*)ms47_818),a1);
  2322. C->_last_binary=(T0*)n;
  2323. }
  2324. }
  2325.  else if (r818a_keyword(C,((T0*)ms50_473))) {
  2326. {T454*n=malloc(sizeof(*n));
  2327. *n=M454;
  2328. r454make(n,((T0*)ms50_473),a1);
  2329. C->_last_binary=(T0*)n;
  2330. }
  2331. }
  2332.  else if (r818a_keyword(C,((T0*)ms34_473))) {
  2333. {T454*n=malloc(sizeof(*n));
  2334. *n=M454;
  2335. r454make(n,((T0*)ms34_473),a1);
  2336. C->_last_binary=(T0*)n;
  2337. }
  2338. }
  2339.  else if (r818a_keyword(C,((T0*)ms27_473))) {
  2340. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  2341. {T454*n=malloc(sizeof(*n));
  2342. *n=M454;
  2343. r454make(n,((T0*)ms28_473),a1);
  2344. C->_last_binary=(T0*)n;
  2345. }
  2346. }
  2347. else {
  2348. {T454*n=malloc(sizeof(*n));
  2349. *n=M454;
  2350. r454make(n,((T0*)ms27_473),a1);
  2351. C->_last_binary=(T0*)n;
  2352. }
  2353. }
  2354. /*FI*/}
  2355.  else if (r818a_keyword(C,((T0*)ms41_473))) {
  2356. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  2357. {T454*n=malloc(sizeof(*n));
  2358. *n=M454;
  2359. r454make(n,((T0*)ms42_473),a1);
  2360. C->_last_binary=(T0*)n;
  2361. }
  2362. }
  2363. else {
  2364. {T454*n=malloc(sizeof(*n));
  2365. *n=M454;
  2366. r454make(n,((T0*)ms41_473),a1);
  2367. C->_last_binary=(T0*)n;
  2368. }
  2369. }
  2370. /*FI*/}
  2371. else {
  2372. C->_last_binary=NULL;
  2373. R=0;
  2374. }
  2375. /*FI*/return R;
  2376. }
  2377. void r818a_r6(T818* C,T0* a1){
  2378. T0* _sp=NULL;
  2379. T0* _infix_div=NULL;
  2380. T0* _infix_int_rem=NULL;
  2381. T0* _infix_int_div=NULL;
  2382. T0* _infix_times=NULL;
  2383. /*IF*/if (r818skip1(C,'\52')) {
  2384. {T627*n=malloc(sizeof(*n));
  2385. *n=M627;
  2386. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2387. _sp=(T0*)n;
  2388. }
  2389. /*IF*/if (r818a_e6(C)) {
  2390. {T414*n=malloc(sizeof(*n));
  2391. *n=M414;
  2392. r414make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2393. _infix_times=(T0*)n;
  2394. }
  2395. r818a_r6(C,_infix_times);
  2396. }
  2397. else {
  2398. r818err_exp(_sp,((T0*)ms38_473));
  2399. }
  2400. /*FI*/}
  2401.  else if (r818skip2(C,'\57','\57')) {
  2402. {T627*n=malloc(sizeof(*n));
  2403. *n=M627;
  2404. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2405. _sp=(T0*)n;
  2406. }
  2407. /*IF*/if (r818a_e6(C)) {
  2408. {T460*n=malloc(sizeof(*n));
  2409. *n=M460;
  2410. r460make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2411. _infix_int_div=(T0*)n;
  2412. }
  2413. r818a_r6(C,_infix_int_div);
  2414. }
  2415. else {
  2416. r818err_exp(_sp,((T0*)ms120_818));
  2417. }
  2418. /*FI*/}
  2419.  else if (r818skip2(C,'\134','\134')) {
  2420. {T627*n=malloc(sizeof(*n));
  2421. *n=M627;
  2422. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2423. _sp=(T0*)n;
  2424. }
  2425. /*IF*/if (r818a_e6(C)) {
  2426. {T453*n=malloc(sizeof(*n));
  2427. *n=M453;
  2428. r453make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2429. _infix_int_rem=(T0*)n;
  2430. }
  2431. r818a_r6(C,_infix_int_rem);
  2432. }
  2433. else {
  2434. r818err_exp(_sp,((T0*)ms121_818));
  2435. }
  2436. /*FI*/}
  2437.  else if (r818skip1unless2(C,'\57','\75')) {
  2438. {T627*n=malloc(sizeof(*n));
  2439. *n=M627;
  2440. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2441. _sp=(T0*)n;
  2442. }
  2443. /*IF*/if (r818a_e6(C)) {
  2444. {T520*n=malloc(sizeof(*n));
  2445. *n=M520;
  2446. r520make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2447. _infix_div=(T0*)n;
  2448. }
  2449. r818a_r6(C,_infix_div);
  2450. }
  2451. else {
  2452. r818err_exp(_sp,((T0*)ms47_473));
  2453. }
  2454. /*FI*/}
  2455. else {
  2456. C->_last_expression=a1;
  2457. }
  2458. /*FI*/}
  2459. int r818a_e6(T818* C){
  2460. int R=0;
  2461. R=r818a_e7(C);
  2462. r818a_r7(C,(((T818*)C))->_last_expression/*97*/);
  2463. return R;
  2464. }
  2465. /*No:EIFFEL_PARSER.em15*/
  2466. /*No:EIFFEL_PARSER.last_parent*/
  2467. void r818a_r7(T818* C,T0* a1){
  2468. T0* _sp=NULL;
  2469. T0* _infix_power=NULL;
  2470. /*IF*/if (r818skip1(C,'\136')) {
  2471. {T627*n=malloc(sizeof(*n));
  2472. *n=M627;
  2473. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2474. _sp=(T0*)n;
  2475. }
  2476. /*IF*/if (r818a_e7(C)) {
  2477. {T557*n=malloc(sizeof(*n));
  2478. *n=M557;
  2479. r557make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  2480. _infix_power=(T0*)n;
  2481. }
  2482. r818a_r7(C,_infix_power);
  2483. }
  2484. else {
  2485. r818err_exp(_sp,((T0*)ms122_818));
  2486. }
  2487. /*FI*/}
  2488. else {
  2489. C->_last_expression=a1;
  2490. }
  2491. /*FI*/}
  2492. int r818a_e7(T818* C){
  2493. int R=0;
  2494. R=r818a_e8(C);
  2495. r818a_r8(C,(((T818*)C))->_last_expression/*97*/);
  2496. return R;
  2497. }
  2498. int r818a_boolean_constant(T818* C){
  2499. int R=0;
  2500. /*IF*/if (r818a_keyword(C,((T0*)ms47_470))) {
  2501. {T849*n=malloc(sizeof(*n));
  2502. *n=M849;
  2503. /*[IRF3.3make*/((((T849*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2504. /*]*/
  2505. C->_last_boolean_constant=(T0*)n;
  2506. }
  2507. R=1;
  2508. }
  2509.  else if (r818a_keyword(C,((T0*)ms17_470))) {
  2510. {T367*n=malloc(sizeof(*n));
  2511. *n=M367;
  2512. /*[IRF3.3make*/((((T367*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2513. /*]*/
  2514. C->_last_boolean_constant=(T0*)n;
  2515. }
  2516. R=1;
  2517. }
  2518. /*FI*/return R;
  2519. }
  2520. /*No:EIFFEL_PARSER.last_type*/
  2521. int r818a_base_type(T818* C){
  2522. int R=0;
  2523. T0* _sp=NULL;
  2524. R=1;
  2525. /*IF*/if (r818a_keyword(C,((T0*)ms1_473))) {
  2526. {T669*n=malloc(sizeof(*n));
  2527. *n=M669;
  2528. r669make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2529. C->_last_base_type=(T0*)n;
  2530. }
  2531. }
  2532.  else if (r818a_keyword(C,((T0*)ms2_473))) {
  2533. {T627*n=malloc(sizeof(*n));
  2534. *n=M627;
  2535. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2536. _sp=(T0*)n;
  2537. }
  2538. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  2539. {T709*n=malloc(sizeof(*n));
  2540. *n=M709;
  2541. r709make(n,_sp,(((T818*)C))->_last_type/*157*/);
  2542. C->_last_base_type=(T0*)n;
  2543. }
  2544. }
  2545. else {
  2546. r818fcp(C,((T0*)ms40_818));
  2547. }
  2548. /*FI*/}
  2549.  else if (r818a_keyword(C,((T0*)ms18_473))) {
  2550. {T627*n=malloc(sizeof(*n));
  2551. *n=M627;
  2552. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2553. _sp=(T0*)n;
  2554. }
  2555. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  2556. {T933*n=malloc(sizeof(*n));
  2557. *n=M933;
  2558. r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
  2559. C->_last_base_type=(T0*)n;
  2560. }
  2561. }
  2562. else {
  2563. r818fcp(C,((T0*)ms41_818));
  2564. }
  2565. /*FI*/}
  2566.  else if (r818a_keyword(C,((T0*)ms42_818))) {
  2567. {T627*n=malloc(sizeof(*n));
  2568. *n=M627;
  2569. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2570. _sp=(T0*)n;
  2571. }
  2572. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  2573. {T933*n=malloc(sizeof(*n));
  2574. *n=M933;
  2575. r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
  2576. C->_last_base_type=(T0*)n;
  2577. }
  2578. }
  2579. else {
  2580. r818fcp(C,((T0*)ms43_818));
  2581. }
  2582. /*FI*/r818warning(_sp,((T0*)ms44_818));
  2583. }
  2584.  else if (r818a_keyword(C,((T0*)ms6_473))) {
  2585. {T707*n=malloc(sizeof(*n));
  2586. *n=M707;
  2587. r707make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2588. C->_last_base_type=(T0*)n;
  2589. }
  2590. }
  2591.  else if (r818a_keyword(C,((T0*)ms8_473))) {
  2592. {T252*n=malloc(sizeof(*n));
  2593. *n=M252;
  2594. r252make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2595. C->_last_base_type=(T0*)n;
  2596. }
  2597. }
  2598.  else if (r818a_keyword(C,((T0*)ms11_473))) {
  2599. {T388*n=malloc(sizeof(*n));
  2600. *n=M388;
  2601. r388make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2602. C->_last_base_type=(T0*)n;
  2603. }
  2604. }
  2605.  else if (r818a_keyword(C,((T0*)ms15_473))) {
  2606. {T788*n=malloc(sizeof(*n));
  2607. *n=M788;
  2608. r788make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2609. C->_last_base_type=(T0*)n;
  2610. }
  2611. }
  2612.  else if (r818a_keyword(C,((T0*)ms19_473))) {
  2613. {T284*n=malloc(sizeof(*n));
  2614. *n=M284;
  2615. r284make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2616. C->_last_base_type=(T0*)n;
  2617. }
  2618. }
  2619.  else if (r818a_keyword(C,((T0*)ms21_473))) {
  2620. {T900*n=malloc(sizeof(*n));
  2621. *n=M900;
  2622. r900make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2623. C->_last_base_type=(T0*)n;
  2624. }
  2625. }
  2626.  else if (r818a_keyword(C,((T0*)ms23_473))) {
  2627. {T209*n=malloc(sizeof(*n));
  2628. *n=M209;
  2629. r209make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2630. C->_last_base_type=(T0*)n;
  2631. }
  2632. }
  2633.  else if (r818a_keyword(C,((T0*)ms25_473))) {
  2634. {T491*n=malloc(sizeof(*n));
  2635. *n=M491;
  2636. r491make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2637. C->_last_base_type=(T0*)n;
  2638. }
  2639. }
  2640. else {
  2641. R=0;
  2642. }
  2643. /*FI*/return R;
  2644. }
  2645. /*No:EIFFEL_PARSER.em16*/
  2646. /*No:EIFFEL_PARSER.nb_warnings*/
  2647. /*No:EIFFEL_PARSER.last_expression*/
  2648. /*No:EIFFEL_PARSER.last_character_constant*/
  2649. void r818a_r8(T818* C,T0* a1){
  2650. T0* _infix_freeop=NULL;
  2651. T0* _infix_name=NULL;
  2652. /*IF*/if (r818a_free_operator(C)) {
  2653. _infix_name=r511to_infix_name_use(((T511*)(oBC818tmp_name)));
  2654. /*IF*/if (r818a_e8(C)) {
  2655. {T534*n=malloc(sizeof(*n));
  2656. *n=M534;
  2657. r534make(n,a1,_infix_name,(((T818*)C))->_last_expression/*97*/);
  2658. _infix_freeop=(T0*)n;
  2659. }
  2660. r818a_r8(C,_infix_freeop);
  2661. }
  2662. else {
  2663. r818err_exp((((T454*)((T454*)_infix_name)))->_start_position/*8*/,(((T454*)((T454*)_infix_name)))->_to_string/*4*/);
  2664. }
  2665. /*FI*/}
  2666. else {
  2667. C->_last_expression=a1;
  2668. }
  2669. /*FI*/}
  2670. int r818a_e8(T818* C){
  2671. int R=0;
  2672. T0* _sp=NULL;
  2673. T0* _prefix_freeop=NULL;
  2674. T0* _op=NULL;
  2675. T0* _prefix_moins=NULL;
  2676. T0* _prefix_plus=NULL;
  2677. T0* _prefix_not=NULL;
  2678. /*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
  2679. {T627*n=malloc(sizeof(*n));
  2680. *n=M627;
  2681. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2682. _sp=(T0*)n;
  2683. }
  2684. /*IF*/if (r818a_e8(C)) {
  2685. {T180*n=malloc(sizeof(*n));
  2686. *n=M180;
  2687. r180make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  2688. _prefix_not=(T0*)n;
  2689. }
  2690. C->_last_expression=_prefix_not;
  2691. R=1;
  2692. }
  2693. else {
  2694. r818err_exp(_sp,((T0*)ms40_473));
  2695. }
  2696. /*FI*/}
  2697.  else if (r818skip1(C,'\53')) {
  2698. {T627*n=malloc(sizeof(*n));
  2699. *n=M627;
  2700. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2701. _sp=(T0*)n;
  2702. }
  2703. /*IF*/if (r818a_e8(C)) {
  2704. {T767*n=malloc(sizeof(*n));
  2705. *n=M767;
  2706. r767make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  2707. _prefix_plus=(T0*)n;
  2708. }
  2709. C->_last_expression=_prefix_plus;
  2710. R=1;
  2711. }
  2712. else {
  2713. r818err_exp(_sp,((T0*)ms73_818));
  2714. }
  2715. /*FI*/}
  2716.  else if (r818skip1(C,'\55')) {
  2717. {T627*n=malloc(sizeof(*n));
  2718. *n=M627;
  2719. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2720. _sp=(T0*)n;
  2721. }
  2722. /*IF*/if (r818a_e8(C)) {
  2723. {T72*n=malloc(sizeof(*n));
  2724. *n=M72;
  2725. r72make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  2726. _prefix_moins=(T0*)n;
  2727. }
  2728. C->_last_expression=_prefix_moins;
  2729. R=1;
  2730. }
  2731. else {
  2732. r818err_exp(_sp,((T0*)ms74_818));
  2733. }
  2734. /*FI*/}
  2735.  else if (r818a_free_operator(C)) {
  2736. _op=r511to_prefix_name(((T511*)(oBC818tmp_name)));
  2737. /*IF*/if (r818a_e8(C)) {
  2738. {T990*n=malloc(sizeof(*n));
  2739. *n=M990;
  2740. /*[IRF3.6make*/{T990* C1=n;
  2741. T0* b1=(((T818*)C))->_last_expression/*97*/;
  2742. T0* b2=_op;
  2743. r990make_call0(C1,b1,b2);
  2744. }/*]*/
  2745. _prefix_freeop=(T0*)n;
  2746. }
  2747. C->_last_expression=_prefix_freeop;
  2748. R=1;
  2749. }
  2750. else {
  2751. /*[IRF3.6append*/{T0* b1=((T0*)ms75_818);
  2752. r7append(((T7*)(oBC683explanation)),b1);
  2753. }/*]*/
  2754. r818err_exp((((T406*)((T406*)_op)))->_start_position/*8*/,(((T406*)((T406*)_op)))->_to_string/*4*/);
  2755. }
  2756. /*FI*/}
  2757. else {
  2758. R=r818a_e9(C);
  2759. }
  2760. /*FI*/return R;
  2761. }
  2762. int r818a_feature_declaration(T818* C){
  2763. int R=0;
  2764. r505initialize(((T505*)(oBC818tmp_feature)));
  2765. /*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
  2766. /*IF*/if (r818a_feature_name(C)) {
  2767. R=1;
  2768. X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
  2769. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  2770. r855add_last(((T855*)(oBC505names)),b1);
  2771. }/*]*/
  2772. }
  2773. else {
  2774. r818fcp(C,((T0*)ms140_818));
  2775. }
  2776. /*FI*/}
  2777.  else if (r818a_feature_name(C)) {
  2778. R=1;
  2779. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  2780. r855add_last(((T855*)(oBC505names)),b1);
  2781. }/*]*/
  2782. }
  2783. /*FI*/while (!(!(r818skip1(C,'\54')))) {
  2784. /*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
  2785. /*IF*/if (r818a_feature_name(C)) {
  2786. X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
  2787. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  2788. r855add_last(((T855*)(oBC505names)),b1);
  2789. }/*]*/
  2790. }
  2791. else {
  2792. r818fcp(C,((T0*)ms92_818));
  2793. }
  2794. /*FI*/}
  2795.  else if (r818a_feature_name(C)) {
  2796. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  2797. r855add_last(((T855*)(oBC505names)),b1);
  2798. }/*]*/
  2799. }
  2800. else {
  2801. /*[IRF3.6ecp*/{T818* C1=C;
  2802. T0* b1=((T0*)ms93_818);
  2803. r818error(r818current_position(C1),b1);
  2804. }/*]*/
  2805. }
  2806. /*FI*/}
  2807. /*IF*/if (R) {
  2808. r818a_formal_arg_list(C);
  2809. C->_function_type=NULL;
  2810. /*IF*/if (r818skip1(C,'\72')) {
  2811. /*IF*/if (r818a_type(C)) {
  2812. C->_function_type=(((T818*)C))->_last_type/*157*/;
  2813. /*[IRF3.3set_type*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_type)=((((T818*)C))->_last_type/*157*/);
  2814. /*]*/
  2815. }
  2816. else {
  2817. r818fcp(C,((T0*)ms156_818));
  2818. }
  2819. /*FI*/}
  2820. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms27_470))) {
  2821. /*IF*/if (r818a_keyword(C,((T0*)ms49_470))) {
  2822. C->_last_feature_declaration=r505to_cst_att_unique(((T505*)(oBC818tmp_feature)));
  2823. }
  2824.  else if (r818a_boolean_constant(C)) {
  2825. C->_last_feature_declaration=r505to_cst_att_boolean(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_boolean_constant/*81*/);
  2826. }
  2827.  else if (r818a_character_constant(C)) {
  2828. C->_last_feature_declaration=r505to_cst_att_character(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_character_constant/*85*/);
  2829. }
  2830.  else if (r818a_manifest_string(C)) {
  2831. C->_last_feature_declaration=r505to_cst_att_string(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_manifest_string/*145*/);
  2832. }
  2833.  else if (r818a_bit_constant(C)) {
  2834. C->_last_feature_declaration=r505to_cst_att_bit(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_bit_constant/*77*/);
  2835. }
  2836.  else if (r818a_real_constant(C)) {
  2837. C->_last_feature_declaration=r505to_cst_att_real(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_real_constant/*153*/);
  2838. }
  2839.  else if (r818a_integer_constant(C)) {
  2840. C->_last_feature_declaration=r505to_cst_att_integer(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_integer_constant/*129*/);
  2841. }
  2842. else {
  2843. C->_last_feature_declaration=r818a_routine(C);
  2844. }
  2845. /*FI*/}
  2846. else {
  2847. C->_last_feature_declaration=r505to_writable_attribute(((T505*)(oBC818tmp_feature)));
  2848. }
  2849. /*FI*/C->_function_type=NULL;
  2850. C->_arguments=NULL;
  2851. }
  2852. /*FI*/return R;
  2853. }
  2854. /*No:EIFFEL_PARSER.us_integer*/
  2855. /*No:EIFFEL_PARSER.em17*/
  2856. int r818a_integer_constant(T818* C){
  2857. int R=0;
  2858. int _c=0;
  2859. int _l=0;
  2860. /*IF*/if (r818skip1(C,'\53')) {
  2861. _l=(((T818*)C))->_start_line/*169*/;
  2862. _c=(((T818*)C))->_start_column/*165*/;
  2863. /*IF*/if (r818a_integer(C)) {
  2864. r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
  2865. R=1;
  2866. }
  2867. else {
  2868. r818fcp(C,((T0*)ms69_470));
  2869. }
  2870. /*FI*/}
  2871.  else if (r818skip1(C,'\55')) {
  2872. _l=(((T818*)C))->_start_line/*169*/;
  2873. _c=(((T818*)C))->_start_column/*165*/;
  2874. /*IF*/if (r818a_integer(C)) {
  2875. r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
  2876. r342unary_minus(((T342*)((((T818*)C))->_last_integer_constant/*129*/)));
  2877. R=1;
  2878. }
  2879. else {
  2880. r818fcp(C,((T0*)ms69_470));
  2881. }
  2882. /*FI*/}
  2883. else {
  2884. R=r818a_integer(C);
  2885. }
  2886. /*FI*/return R;
  2887. }
  2888. void r818a_creation_clause(T818* C,T0* a1){
  2889. T0* _creation_clause=NULL;
  2890. T0* _list=NULL;
  2891. T0* _comments=NULL;
  2892. T0* _clients=NULL;
  2893. _clients=r818a_clients(C);
  2894. _comments=r818get_comments(C);
  2895. /*IF*/if (r818a_feature_list(C)) {
  2896. _list=(((T818*)C))->_last_feature_list/*105*/;
  2897. }
  2898. /*FI*/{T583*n=malloc(sizeof(*n));
  2899. *n=M583;
  2900. r583make(n,a1,_clients,_comments,_list);
  2901. _creation_clause=(T0*)n;
  2902. }
  2903. r605add_creation_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_creation_clause);
  2904. }
  2905. int r818a_e9(T818* C){
  2906. int R=0;
  2907. T0* _e_old=NULL;
  2908. /*IF*/if (r818a_keyword(C,((T0*)ms34_470))) {
  2909. /*IF*/if (!((((T818*)C))->_in_ensure/*37*/)) {
  2910. r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms76_818));
  2911. }
  2912. /*FI*//*IF*/if (r818a_e10(C)) {
  2913. {T664*n=malloc(sizeof(*n));
  2914. *n=M664;
  2915. /*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T818*)C))->_last_expression/*97*/);
  2916. /*]*/
  2917. _e_old=(T0*)n;
  2918. }
  2919. C->_last_expression=_e_old;
  2920. R=1;
  2921. }
  2922. else {
  2923. r818fcp(C,((T0*)ms77_818));
  2924. }
  2925. /*FI*/}
  2926. else {
  2927. R=r818a_e10(C);
  2928. }
  2929. /*FI*/return R;
  2930. }
  2931. int r818a_index_value(T818* C){
  2932. int R=0;
  2933. /*IF*/if (r818a_identifier(C)) {
  2934. C->_last_index_value=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  2935. R=1;
  2936. }
  2937.  else if (r818a_manifest_constant(C)) {
  2938. C->_last_index_value=(((T818*)C))->_last_manifest_constant/*141*/;
  2939. R=1;
  2940. }
  2941. /*FI*/return R;
  2942. }
  2943. /*No:EIFFEL_PARSER.em18*/
  2944. void r818a_new_export_list(T818* C){
  2945. int _state=0;
  2946. T0* _new_export_item=NULL;
  2947. T0* _items=NULL;
  2948. T0* _clients=NULL;
  2949. T0* _sp=NULL;
  2950. T0* _export_list=NULL;
  2951. /*IF*/if (r818a_keyword(C,((T0*)ms15_470))) {
  2952. {T627*n=malloc(sizeof(*n));
  2953. *n=M627;
  2954. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2955. _sp=(T0*)n;
  2956. }
  2957. while (!((_state)>(3))) {
  2958. {int z1=_state;
  2959.  
  2960. if((0==z1)){
  2961. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\173')) {
  2962. _clients=r818a_clients(C);
  2963. _state=1;
  2964. }
  2965.  else if (((((T818*)C))->_cc/*24*/)==('\73')) {
  2966. /*[IRF3.6wcp*/{T818* C1=C;
  2967. T0* b1=((T0*)ms68_470);
  2968. r818warning(r818current_position(C1),b1);
  2969. }/*]*/
  2970. C->_ok=r818skip1(C,'\73');
  2971. }
  2972. else {
  2973. /*IF*/if ((_items)!=((void*)(NULL))) {
  2974. {T671*n=malloc(sizeof(*n));
  2975. *n=M671;
  2976. r671make(n,_sp,_items);
  2977. _export_list=(T0*)n;
  2978. }
  2979. /*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
  2980. /*]*/
  2981. }
  2982. /*FI*/_state=4;
  2983. }
  2984. /*FI*/}
  2985.  else 
  2986. if((1==z1)){
  2987. /*IF*/if (r818a_keyword(C,((T0*)ms2_470))) {
  2988. {T542*n=malloc(sizeof(*n));
  2989. *n=M542;
  2990. r542make_all(n,_clients);
  2991. _new_export_item=(T0*)n;
  2992. }
  2993. /*IF*/if ((_items)==((void*)(NULL))) {
  2994. _items=se_ma587(1,_new_export_item);
  2995. }
  2996. else {
  2997. r587add_last(((T587*)_items),_new_export_item);
  2998. }
  2999. /*FI*/_state=2;
  3000. }
  3001. else {
  3002. /*IF*/if (r818a_feature_list(C)) {
  3003. {T542*n=malloc(sizeof(*n));
  3004. *n=M542;
  3005. r542make(n,_clients,(((T818*)C))->_last_feature_list/*105*/);
  3006. _new_export_item=(T0*)n;
  3007. }
  3008. /*IF*/if ((_items)==((void*)(NULL))) {
  3009. _items=se_ma587(1,_new_export_item);
  3010. }
  3011. else {
  3012. r587add_last(((T587*)_items),_new_export_item);
  3013. }
  3014. /*FI*/_state=2;
  3015. }
  3016. else {
  3017. _state=3;
  3018. }
  3019. /*FI*/}
  3020. /*FI*/}
  3021.  else 
  3022. if((2==z1)){
  3023. /*IF*/if (r818skip1(C,'\73')) {
  3024. _state=0;
  3025. }
  3026.  else if (((((T818*)C))->_cc/*24*/)==('\173')) {
  3027. /*[IRF3.6wcp*/{T818* C1=C;
  3028. T0* b1=((T0*)ms144_818);
  3029. r818warning(r818current_position(C1),b1);
  3030. }/*]*/
  3031. _state=0;
  3032. }
  3033. else {
  3034. /*IF*/if ((_items)!=((void*)(NULL))) {
  3035. {T671*n=malloc(sizeof(*n));
  3036. *n=M671;
  3037. r671make(n,_sp,_items);
  3038. _export_list=(T0*)n;
  3039. }
  3040. /*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
  3041. /*]*/
  3042. }
  3043. /*FI*/_state=4;
  3044. }
  3045. /*FI*/}
  3046.  else{r818fcp(C,((T0*)ms149_818));
  3047. _state=4;
  3048. }}
  3049. }
  3050. }
  3051. /*FI*/}
  3052. /*No:EIFFEL_PARSER.last_manifest_string*/
  3053. /*No:EIFFEL_PARSER.last_base_type*/
  3054. /*No:EIFFEL_PARSER.em19*/
  3055. /*No:EIFFEL_PARSER.last_comments*/
  3056. int r818a_retry(T818* C){
  3057. int R=0;
  3058. /*IF*/if (r818a_keyword(C,((T0*)ms42_470))) {
  3059. /*IF*/if (!((((T818*)C))->_in_rescue/*41*/)) {
  3060. r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms30_818));
  3061. }
  3062. /*FI*/{T526*n=malloc(sizeof(*n));
  3063. *n=M526;
  3064. /*[IRF3.3make*/((((T526*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  3065. /*]*/
  3066. C->_last_instruction=(T0*)n;
  3067. }
  3068. R=1;
  3069. }
  3070. /*FI*/return R;
  3071. }
  3072. /*No:EIFFEL_PARSER.drop_comments*/
  3073. int r818a_e10(T818* C){
  3074. int R=0;
  3075. /*IF*/if (r818a_strip(C)) {
  3076. R=1;
  3077. }
  3078.  else if (r818skip1(C,'\50')) {
  3079. R=1;
  3080. /*IF*/if (r818a_expression(C)) {
  3081. /*IF*/if (r818skip1(C,'\51')) {
  3082. r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  3083. }
  3084. else {
  3085. r818fcp(C,((T0*)ms78_818));
  3086. }
  3087. /*FI*/}
  3088. else {
  3089. r818fcp(C,((T0*)ms79_818));
  3090. }
  3091. /*FI*/}
  3092.  else if (r818a_manifest_constant(C)) {
  3093. C->_last_expression=(((T818*)C))->_last_manifest_constant/*141*/;
  3094. R=1;
  3095. /*IF*/if (r818skip1unless2(C,'\56','\56')) {
  3096. /*[IRF3.6wcp*/{T818* C1=C;
  3097. T0* b1=((T0*)ms80_818);
  3098. r818warning(r818current_position(C1),b1);
  3099. }/*]*/
  3100. r818a_after_a_dot(C,0,(((T818*)C))->_last_expression/*97*/);
  3101. }
  3102. /*FI*/}
  3103.  else if (r818a_identifier(C)) {
  3104. R=1;
  3105. /*IF*/if (((((r818a_result(C))||(r818a_current(C)))||(r818a_void(C)))||(r818a_local_variable(C)))||(r818a_argument(C))) {
  3106. r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  3107. }
  3108. else {
  3109. r818a_function_call(C);
  3110. }
  3111. /*FI*/}
  3112. /*FI*/return R;
  3113. }
  3114. /*No:EIFFEL_PARSER.last_prefix*/
  3115. void r818a_r10(T818* C,int a1,T0* a2,T0* a3,T0* a4){
  3116. /*IF*/if (r818skip1unless2(C,'\56','\56')) {
  3117. r818a_after_a_dot(C,a1,r818to_call(a2,a3,a4));
  3118. }
  3119. else {
  3120. /*IF*/if (a1) {
  3121. C->_last_instruction=r818to_proc_call(C,a2,a3,a4);
  3122. C->_last_expression=NULL;
  3123. }
  3124. else {
  3125. C->_last_expression=r818to_call(a2,a3,a4);
  3126. C->_last_instruction=NULL;
  3127. }
  3128. /*FI*/}
  3129. /*FI*/}
  3130. void r818skip_comments(T818* C){
  3131. int _state=0;
  3132. T0* _sp=NULL;
  3133. while (!((_state)==(2))) {
  3134. {int z1=_state;
  3135.  
  3136. if((0==z1)){
  3137. {int z2=(((T818*)C))->_cc/*24*/;
  3138.  
  3139. if(((9<=z2)&&(z2<=10))||(32==z2)){
  3140. r818next_char(C);
  3141. }
  3142.  else 
  3143. if((45==z2)){
  3144. r818next_char(C);
  3145. _state=1;
  3146. }
  3147.  else{_state=2;
  3148. }}
  3149. }
  3150.  else {{int z2=(((T818*)C))->_cc/*24*/;
  3151.  
  3152. if((45==z2)){
  3153. /*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
  3154. }
  3155. else {
  3156. /*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
  3157. {T627*n=malloc(sizeof(*n));
  3158. *n=M627;
  3159. r627make(n,(((T818*)C))->_line/*16*/,((((T818*)C))->_column/*12*/)-(1));
  3160. _sp=(T0*)n;
  3161. }
  3162. }
  3163. /*FI*/}
  3164. /*FI*/r818next_char(C);
  3165. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818lcs)))))->_count)=(0);
  3166. /*]*/
  3167. while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
  3168. r7extend(((T7*)(oBC818lcs)),(((T818*)C))->_cc/*24*/);
  3169. r818next_char(C);
  3170. }
  3171. /*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
  3172. }
  3173. else {
  3174. /*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
  3175. {T393*n=malloc(sizeof(*n));
  3176. *n=M393;
  3177. r393make(n,_sp,se_ma52(1,r7twin(((T7*)(oBC818lcs)))));
  3178. C->_last_comments=(T0*)n;
  3179. }
  3180. }
  3181. else {
  3182. /*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)((T393*)((((T818*)C))->_last_comments/*25*/))))->_list/*4*/)),r7twin(((T7*)(oBC818lcs))));
  3183. /*]*/
  3184. }
  3185. /*FI*/}
  3186. /*FI*/_state=0;
  3187. }
  3188.  else{r818prev_char(C);
  3189. _state=2;
  3190. }}
  3191. }}
  3192. }
  3193. }
  3194. /*No:EIFFEL_PARSER.last_class_type*/
  3195. /*No:EIFFEL_PARSER.us_array*/
  3196. /*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
  3197. T0* r818to_proc_call(T818* C,T0* a1,T0* a2,T0* a3){
  3198. T0* R=NULL;
  3199. /*IF*/if ((a2)==((void*)(NULL))) {
  3200. r818fcp(C,((T0*)ms135_818));
  3201. }
  3202.  else if ((a3)==((void*)(NULL))) {
  3203. {T268*n=malloc(sizeof(*n));
  3204. *n=M268;
  3205. r268make(n,a1,a2);
  3206. R=(T0*)n;
  3207. }
  3208. }
  3209.  else if ((X431count(a3))==(1)) {
  3210. {T317*n=malloc(sizeof(*n));
  3211. *n=M317;
  3212. r317make(n,a1,a2,a3);
  3213. R=(T0*)n;
  3214. }
  3215. }
  3216. else {
  3217. {T568*n=malloc(sizeof(*n));
  3218. *n=M568;
  3219. r568make(n,a1,a2,a3);
  3220. R=(T0*)n;
  3221. }
  3222. }
  3223. /*FI*/return R;
  3224. }
  3225. int r818a_tag_mark(T818* C){
  3226. int R=0;
  3227. /*IF*/if (r818a_identifier(C)) {
  3228. /*IF*/if (r818skip1unless2(C,'\72','\75')) {
  3229. R=1;
  3230. C->_last_tag_mark=r511to_tag_name(((T511*)(oBC818tmp_name)));
  3231. }
  3232. else {
  3233. C->_last_tag_mark=NULL;
  3234. r818go_back_at(C,(((T511*)((T511*)(oBC818tmp_name))))->_li/*8*/,(((T511*)((T511*)(oBC818tmp_name))))->_co/*4*/);
  3235. }
  3236. /*FI*/}
  3237. else {
  3238. C->_last_tag_mark=NULL;
  3239. }
  3240. /*FI*/return R;
  3241. }
  3242. /*No:EIFFEL_PARSER.nb_errors*/
  3243. /*No:EIFFEL_PARSER.start_line*/
  3244. void r818a_index_list(T818* C){
  3245. while (!(!(r818a_index_clause(C)))) {
  3246. C->_ok=r818skip1(C,'\73');
  3247. }
  3248. }
  3249. /*No:EIFFEL_PARSER.last_real_constant*/
  3250. T0* r818a_external(T818* C){
  3251. T0* R=NULL;
  3252. T0* _l=NULL;
  3253. /*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
  3254. /*[IRF3.6wcp*/{T818* C1=C;
  3255. T0* b1=((T0*)ms157_818);
  3256. r818warning(r818current_position(C1),b1);
  3257. }/*]*/
  3258. }
  3259. else {
  3260. C->_ok=r818skip1(C,'\42');
  3261. }
  3262. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms121_470))) {
  3263. {T85*n=malloc(sizeof(*n));
  3264. *n=M85;
  3265. _l=(T0*)n;
  3266. }
  3267. }
  3268.  else if (r818a_keyword(C,((T0*)ms98_470))) {
  3269. {T893*n=malloc(sizeof(*n));
  3270. *n=M893;
  3271. _l=(T0*)n;
  3272. }
  3273. }
  3274.  else if (r818a_keyword(C,((T0*)ms90_470))) {
  3275. {T240*n=malloc(sizeof(*n));
  3276. *n=M240;
  3277. _l=(T0*)n;
  3278. }
  3279. }
  3280.  else if (r818a_keyword(C,((T0*)ms99_470))) {
  3281. {T320*n=malloc(sizeof(*n));
  3282. *n=M320;
  3283. _l=(T0*)n;
  3284. }
  3285. }
  3286.  else if (r818a_keyword(C,((T0*)ms91_470))) {
  3287. {T680*n=malloc(sizeof(*n));
  3288. *n=M680;
  3289. _l=(T0*)n;
  3290. }
  3291. }
  3292.  else if (r818a_keyword(C,((T0*)ms81_818))) {
  3293. {T85*n=malloc(sizeof(*n));
  3294. *n=M85;
  3295. _l=(T0*)n;
  3296. }
  3297. r818wcpefnc(C,((T0*)ms82_818),((T0*)ms121_470));
  3298. }
  3299.  else if (r818a_keyword(C,((T0*)ms83_818))) {
  3300. {T893*n=malloc(sizeof(*n));
  3301. *n=M893;
  3302. _l=(T0*)n;
  3303. }
  3304. r818wcpefnc(C,((T0*)ms84_818),((T0*)ms98_470));
  3305. }
  3306.  else if (r818a_keyword(C,((T0*)ms85_818))) {
  3307. {T240*n=malloc(sizeof(*n));
  3308. *n=M240;
  3309. _l=(T0*)n;
  3310. }
  3311. r818wcpefnc(C,((T0*)ms86_818),((T0*)ms90_470));
  3312. }
  3313.  else if (r818a_keyword(C,((T0*)ms87_818))) {
  3314. {T320*n=malloc(sizeof(*n));
  3315. *n=M320;
  3316. _l=(T0*)n;
  3317. }
  3318. }
  3319.  else if (r818a_keyword(C,((T0*)ms88_818))) {
  3320. {T680*n=malloc(sizeof(*n));
  3321. *n=M680;
  3322. _l=(T0*)n;
  3323. }
  3324. r818wcpefnc(C,((T0*)ms89_818),((T0*)ms91_470));
  3325. }
  3326.  else if (r818a_keyword(C,((T0*)ms28_470))) {
  3327. {T300*n=malloc(sizeof(*n));
  3328. *n=M300;
  3329. _l=(T0*)n;
  3330. }
  3331. }
  3332.  else if (r818a_keyword(C,((T0*)ms29_470))) {
  3333. {T970*n=malloc(sizeof(*n));
  3334. *n=M970;
  3335. _l=(T0*)n;
  3336. }
  3337. }
  3338. else {
  3339. r818fcp(C,((T0*)ms90_818));
  3340. }
  3341. /*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
  3342. /*[IRF3.6wcp*/{T818* C1=C;
  3343. T0* b1=((T0*)ms157_818);
  3344. r818warning(r818current_position(C1),b1);
  3345. }/*]*/
  3346. }
  3347. else {
  3348. C->_ok=r818skip1(C,'\42');
  3349. }
  3350. /*FI*/R=r505to_external_routine(((T505*)(oBC818tmp_feature)),_l,r818a_alias(C));
  3351. return R;
  3352. }
  3353. /*No:EIFFEL_PARSER.show_nb_errors*/
  3354. int r818a_class_type(T818* C){
  3355. int R=0;
  3356. T0* _generic_list=NULL;
  3357. T0* _base_class_name=NULL;
  3358. int _state=0;
  3359. /*IF*/if (r818a_base_type(C)) {
  3360. C->_last_class_type=(((T818*)C))->_last_base_type/*69*/;
  3361. R=1;
  3362. }
  3363.  else if (r818a_base_class_name(C)) {
  3364. R=1;
  3365. _base_class_name=(((T818*)C))->_last_class_name/*89*/;
  3366. while (!((_state)>(2))) {
  3367. {int z1=_state;
  3368.  
  3369. if((0==z1)){
  3370. /*IF*/if (r818skip1(C,'\133')) {
  3371. _state=1;
  3372. }
  3373. else {
  3374. {T657*n=malloc(sizeof(*n));
  3375. *n=M657;
  3376. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
  3377. /*]*/
  3378. C->_last_class_type=(T0*)n;
  3379. }
  3380. _state=3;
  3381. }
  3382. /*FI*/}
  3383.  else 
  3384. if((1==z1)){
  3385. /*IF*/if (r818a_type(C)) {
  3386. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  3387. _generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
  3388. }
  3389. else {
  3390. r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
  3391. }
  3392. /*FI*/_state=2;
  3393. }
  3394.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  3395. /*[IRF3.6wcp*/{T818* C1=C;
  3396. T0* b1=((T0*)ms150_818);
  3397. r818warning(r818current_position(C1),b1);
  3398. }/*]*/
  3399. C->_ok=r818skip1(C,'\54');
  3400. }
  3401.  else if (((((T818*)C))->_cc/*24*/)==('\135')) {
  3402. _state=2;
  3403. }
  3404. else {
  3405. r818fcp(C,((T0*)ms156_818));
  3406. _state=2;
  3407. }
  3408. /*FI*/}
  3409.  else{/*IF*/if (r818skip1(C,'\54')) {
  3410. _state=1;
  3411. }
  3412.  else if (((((T818*)C))->_cc/*24*/)==('\135')) {
  3413. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  3414. /*[IRF3.6wcp*/{T818* C1=C;
  3415. T0* b1=((T0*)ms54_818);
  3416. r818warning(r818current_position(C1),b1);
  3417. }/*]*/
  3418. {T657*n=malloc(sizeof(*n));
  3419. *n=M657;
  3420. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
  3421. /*]*/
  3422. C->_last_class_type=(T0*)n;
  3423. }
  3424. }
  3425. else {
  3426. {T720*n=malloc(sizeof(*n));
  3427. *n=M720;
  3428. r720make(n,_base_class_name,_generic_list);
  3429. C->_last_class_type=(T0*)n;
  3430. }
  3431. }
  3432. /*FI*/C->_ok=r818skip1(C,'\135');
  3433. _state=3;
  3434. }
  3435.  else if (r818a_type(C)) {
  3436. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  3437. _generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
  3438. }
  3439. else {
  3440. r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
  3441. }
  3442. /*FI*/r818warning(X291start_position((((T818*)C))->_last_type/*157*/),((T0*)ms143_818));
  3443. }
  3444. else {
  3445. r818fcp(C,((T0*)ms55_818));
  3446. _state=3;
  3447. }
  3448. /*FI*/}}
  3449. }
  3450. }
  3451. /*FI*/return R;
  3452. }
  3453. T0* r818analyse_class(T818* C,T0* a1){
  3454. T0* R=NULL;
  3455. T0* _path=NULL;
  3456. int _old_nbw=0;
  3457. int _old_nbe=0;
  3458. _path=(((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/;
  3459. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)) {
  3460. /*[IRF3.6append*/{T0* b1=((T0*)ms1_818);
  3461. r7append(((T7*)(oBC683explanation)),b1);
  3462. }/*]*/
  3463. r683print_as_fatal_error(((T683*)(oBC364eh)));
  3464. }
  3465. /*FI*/r306put_integer(((T306*)(oBC364echo)),(/*(IRF4.9base_class_count*/(((T718*)((T718*)(oBC604base_class_dictionary))))->_count/*40*//*)*/)+(1));
  3466. r306put_character(((T306*)(oBC364echo)),'\11');
  3467. r306put_string(((T306*)(oBC364echo)),_path);
  3468. r306put_character(((T306*)(oBC364echo)),'\n');
  3469. _old_nbe=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  3470. _old_nbw=/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/;
  3471. C->_is_running=1;
  3472. C->_function_type=NULL;
  3473. C->_in_ensure=0;
  3474. C->_last_comments=NULL;
  3475. C->_ms_numbering=0;
  3476. C->_line=1;
  3477. C->_column=1;
  3478. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  3479. /*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
  3480. C->_cc='\n';
  3481. }
  3482. else {
  3483. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  3484. }
  3485. /*FI*/{T605*n=malloc(sizeof(*n));
  3486. *n=M605;
  3487. r605make(n);
  3488. C->_last_base_class=(T0*)n;
  3489. }
  3490. r818skip_comments(C);
  3491. r818a_class_declaration(C);
  3492. C->_is_running=0;
  3493. /*[IRF3.3unset_is_ready*/((((T676*)(((T676*)(oBC364parser_buffer)))))->_path)=(NULL);
  3494. /*]*/
  3495. R=(((T818*)C))->_last_base_class/*65*/;
  3496. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_old_nbe))>(0)) {
  3497. /*[IRF3.2show_nb_errors*/r818show_nb(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/,((T0*)ms10_818));
  3498. /*]*/
  3499. r306w_put_string(((T0*)ms4_818));
  3500. r306w_put_string(_path);
  3501. r306w_put_string(((T0*)ms5_818));
  3502. R=NULL;
  3503. }
  3504.  else if (((/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/)-(_old_nbw))>(0)) {
  3505. /*[IRF3.2show_nb_warnings*/r818show_nb(/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/,((T0*)ms9_818));
  3506. /*]*/
  3507. }
  3508. /*FI*//*IF*/if ((R)!=((void*)(NULL))) {
  3509. r604add_class(((T604*)(oBC364small_eiffel)),R);
  3510. /*IF*/if (((a1)!=((void*)(NULL)))&&(((((T451*)((T451*)a1)))->_to_string/*0*/)!=((void*)((((T451*)((T451*)((((T605*)((T605*)R)))->_base_class_name/*24*/))))->_to_string/*0*/)))) {
  3511. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  3512. /*[IRF3.6append*/{T0* b1=((T0*)ms135_470);
  3513. r7append(((T7*)(oBC683explanation)),b1);
  3514. }/*]*/
  3515. /*[IRF3.6append*/{T0* b1=_path;
  3516. r7append(((T7*)(oBC683explanation)),b1);
  3517. }/*]*/
  3518. /*[IRF3.6append*/{T0* b1=((T0*)ms6_818);
  3519. r7append(((T7*)(oBC683explanation)),b1);
  3520. }/*]*/
  3521. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)a1)))->_to_string/*0*/;
  3522. r7append(((T7*)(oBC683explanation)),b1);
  3523. }/*]*/
  3524. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  3525. r683fatal_error(((T683*)(oBC364eh)),b1);
  3526. }/*]*/
  3527. }
  3528. /*FI*/r605get_started(((T605*)R));
  3529. }
  3530. /*FI*/return R;
  3531. }
  3532. T0*oBC818tmp_feature=NULL;
  3533. T0* r818parse_c_name(T818* C){
  3534. T0* R=NULL;
  3535. {T7*n=malloc(sizeof(*n));
  3536. *n=M7;
  3537. r7make(n,32);
  3538. R=(T0*)n;
  3539. }
  3540. while (!(r3is_separator((((T818*)C))->_cc/*24*/))) {
  3541. r7extend(((T7*)R),(((T818*)C))->_cc/*24*/);
  3542. r818next_char(C);
  3543. }
  3544. r818skip_comments(C);
  3545. return R;
  3546. }
  3547. void r818disconnect(T818* C){
  3548. C->_is_running=0;
  3549. /*[IRF3.3unset_is_ready*/((((T676*)(((T676*)(oBC364parser_buffer)))))->_path)=(NULL);
  3550. /*]*/
  3551. }
  3552. int r818a_character_constant(T818* C){
  3553. int R=0;
  3554. char _value=0;
  3555. int _printing_mode=0;
  3556. int _state=0;
  3557. T0* _sp=NULL;
  3558. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\47')) {
  3559. {T627*n=malloc(sizeof(*n));
  3560. *n=M627;
  3561. r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  3562. _sp=(T0*)n;
  3563. }
  3564. R=1;
  3565. while (!((_state)>(2))) {
  3566. r818next_char(C);
  3567. {int z1=_state;
  3568.  
  3569. if((0==z1)){
  3570. {int z2=(((T818*)C))->_cc/*24*/;
  3571.  
  3572. if((37==z2)){
  3573. _state=1;
  3574. }
  3575.  else 
  3576. if((39==z2)){
  3577. r818fcp(C,((T0*)ms148_818));
  3578. _state=2;
  3579. }
  3580.  else{_value=(((T818*)C))->_cc/*24*/;
  3581. _printing_mode=0;
  3582. _state=2;
  3583. }}
  3584. }
  3585.  else 
  3586. if((1==z1)){
  3587. _printing_mode=1;
  3588. _state=2;
  3589. {int z2=(((T818*)C))->_cc/*24*/;
  3590.  
  3591. if((65==z2)){
  3592. _value='\100';
  3593. }
  3594.  else 
  3595. if((66==z2)){
  3596. _value='\10';
  3597. }
  3598.  else 
  3599. if((67==z2)){
  3600. _value='\136';
  3601. }
  3602.  else 
  3603. if((68==z2)){
  3604. _value='\44';
  3605. }
  3606.  else 
  3607. if((70==z2)){
  3608. _value='\14';
  3609. }
  3610.  else 
  3611. if((72==z2)){
  3612. _value='\134';
  3613. }
  3614.  else 
  3615. if((76==z2)){
  3616. _value='\176';
  3617. }
  3618.  else 
  3619. if((78==z2)){
  3620. _value='\n';
  3621. }
  3622.  else 
  3623. if((81==z2)){
  3624. _value='\140';
  3625. }
  3626.  else 
  3627. if((82==z2)){
  3628. _value='\15';
  3629. }
  3630.  else 
  3631. if((83==z2)){
  3632. _value='\43';
  3633. }
  3634.  else 
  3635. if((84==z2)){
  3636. _value='\11';
  3637. }
  3638.  else 
  3639. if((85==z2)){
  3640. _value='\0';
  3641. }
  3642.  else 
  3643. if((86==z2)){
  3644. _value='\174';
  3645. }
  3646.  else 
  3647. if((37==z2)){
  3648. _value='\45';
  3649. }
  3650.  else 
  3651. if((39==z2)){
  3652. _value='\47';
  3653. }
  3654.  else 
  3655. if((34==z2)){
  3656. _value='\42';
  3657. }
  3658.  else 
  3659. if((40==z2)){
  3660. _value='\133';
  3661. }
  3662.  else 
  3663. if((41==z2)){
  3664. _value='\135';
  3665. }
  3666.  else 
  3667. if((60==z2)){
  3668. _value='\173';
  3669. }
  3670.  else 
  3671. if((62==z2)){
  3672. _value='\175';
  3673. }
  3674.  else 
  3675. if((47==z2)){
  3676. r818a_ascii_code(C);
  3677. _value=((char)((((T818*)C))->_last_ascii_code/*61*/));
  3678. _printing_mode=2;
  3679. }
  3680.  else{r818fcp(C,((T0*)ms24_818));
  3681. }}
  3682. }
  3683.  else{_state=3;
  3684. {int z2=(((T818*)C))->_cc/*24*/;
  3685.  
  3686. if((39==z2)){
  3687. }
  3688.  else{r818fcp(C,((T0*)ms148_818));
  3689. }}
  3690. r818next_char(C);
  3691. r818skip_comments(C);
  3692. }}
  3693. }
  3694. {T260*n=malloc(sizeof(*n));
  3695. *n=M260;
  3696. r260make(n,_sp,_value,_printing_mode);
  3697. C->_last_character_constant=(T0*)n;
  3698. }
  3699. }
  3700. /*FI*/return R;
  3701. }
  3702. int r818a_check(T818* C){
  3703. int R=0;
  3704. T0* _al=NULL;
  3705. T0* _hc=NULL;
  3706. T0* _sp=NULL;
  3707. /*IF*/if (r818a_keyword(C,((T0*)ms4_470))) {
  3708. R=1;
  3709. {T627*n=malloc(sizeof(*n));
  3710. *n=M627;
  3711. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3712. _sp=(T0*)n;
  3713. }
  3714. _hc=r818get_comments(C);
  3715. _al=r818a_assertion(C);
  3716. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  3717. {T292*n=malloc(sizeof(*n));
  3718. *n=M292;
  3719. r292make(n,_sp,_hc,_al);
  3720. C->_last_instruction=(T0*)n;
  3721. }
  3722. }
  3723. else {
  3724. /*[IRF3.6wcp*/{T818* C1=C;
  3725. T0* b1=((T0*)ms48_818);
  3726. r818warning(r818current_position(C1),b1);
  3727. }/*]*/
  3728. }
  3729. /*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  3730. r818fcp(C,((T0*)ms49_818));
  3731. }
  3732. /*FI*/}
  3733. /*FI*/return R;
  3734. }
  3735. /*No:EIFFEL_PARSER.go_back*/
  3736. /*No:EIFFEL_PARSER.current_class*/
  3737. /*No:EIFFEL_PARSER.fz_export*/
  3738. /*No:EIFFEL_PARSER.fz_invariant*/
  3739. /*No:EIFFEL_PARSER.us_or_else*/
  3740. /*No:EIFFEL_PARSER.is_running*/
  3741. int r818a_result(T818* C){
  3742. int R=0;
  3743. /*IF*/if (r511is_result()) {
  3744. /*IF*/if (((((T818*)C))->_function_type/*29*/)==((void*)(NULL))) {
  3745. r818error(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms152_818));
  3746. }
  3747. /*FI*/C->_last_expression=r511to_e_result(((T511*)(oBC818tmp_name)));
  3748. R=1;
  3749. }
  3750. /*FI*/return R;
  3751. }
  3752. int r818a_manifest_string(T818* C){
  3753. int R=0;
  3754. int _state=0;
  3755. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  3756. R=1;
  3757. C->_ms_numbering=((((T818*)C))->_ms_numbering/*57*/)+(1);
  3758. {T805*n=malloc(sizeof(*n));
  3759. *n=M805;
  3760. r805make(n,r818pos((((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/),(((T818*)C))->_ms_numbering/*57*/);
  3761. C->_last_manifest_string=(T0*)n;
  3762. }
  3763. while (!((_state)>(3))) {
  3764. r818next_char(C);
  3765. {int z1=_state;
  3766.  
  3767. if((0==z1)){
  3768. {int z2=(((T818*)C))->_cc/*24*/;
  3769.  
  3770. if((10==z2)){
  3771. r818fcp(C,((T0*)ms146_818));
  3772. }
  3773.  else 
  3774. if((34==z2)){
  3775. _state=4;
  3776. }
  3777.  else 
  3778. if((37==z2)){
  3779. _state=1;
  3780. }
  3781.  else{/*[IRF3.5add*/r7extend(((T7*)((((T805*)((T805*)((((T818*)C))->_last_manifest_string/*145*/))))->_to_string/*16*/)),(((T818*)C))->_cc/*24*/);
  3782. /*]*/
  3783. }}
  3784. }
  3785.  else 
  3786. if((1==z1)){
  3787. _state=0;
  3788. {int z2=(((T818*)C))->_cc/*24*/;
  3789.  
  3790. if((10==z2)){
  3791. _state=3;
  3792. }
  3793.  else 
  3794. if((65==z2)){
  3795. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\100');
  3796. }
  3797.  else 
  3798. if((66==z2)){
  3799. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\10');
  3800. }
  3801.  else 
  3802. if((67==z2)){
  3803. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\136');
  3804. }
  3805.  else 
  3806. if((68==z2)){
  3807. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\44');
  3808. }
  3809.  else 
  3810. if((70==z2)){
  3811. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\14');
  3812. }
  3813.  else 
  3814. if((72==z2)){
  3815. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\134');
  3816. }
  3817.  else 
  3818. if((76==z2)){
  3819. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\176');
  3820. }
  3821.  else 
  3822. if((78==z2)){
  3823. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\n');
  3824. }
  3825.  else 
  3826. if((81==z2)){
  3827. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\140');
  3828. }
  3829.  else 
  3830. if((82==z2)){
  3831. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\15');
  3832. }
  3833.  else 
  3834. if((83==z2)){
  3835. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\43');
  3836. }
  3837.  else 
  3838. if((84==z2)){
  3839. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\11');
  3840. }
  3841.  else 
  3842. if((85==z2)){
  3843. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\0');
  3844. }
  3845.  else 
  3846. if((86==z2)){
  3847. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\174');
  3848. }
  3849.  else 
  3850. if((37==z2)){
  3851. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\45');
  3852. }
  3853.  else 
  3854. if((39==z2)){
  3855. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\47');
  3856. }
  3857.  else 
  3858. if((34==z2)){
  3859. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\42');
  3860. }
  3861.  else 
  3862. if((40==z2)){
  3863. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\133');
  3864. }
  3865.  else 
  3866. if((41==z2)){
  3867. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\135');
  3868. }
  3869.  else 
  3870. if((60==z2)){
  3871. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\173');
  3872. }
  3873.  else 
  3874. if((62==z2)){
  3875. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\175');
  3876. }
  3877.  else 
  3878. if((47==z2)){
  3879. r818a_ascii_code(C);
  3880. r805add_ascii(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),((char)((((T818*)C))->_last_ascii_code/*61*/)));
  3881. }
  3882.  else 
  3883. if((9==z2)||(32==z2)){
  3884. _state=2;
  3885. }
  3886.  else{r818fcp(C,((T0*)ms26_818));
  3887. _state=0;
  3888. }}
  3889. }
  3890.  else 
  3891. if((2==z1)){
  3892. {int z2=(((T818*)C))->_cc/*24*/;
  3893.  
  3894. if((10==z2)){
  3895. _state=3;
  3896. }
  3897.  else 
  3898. if((9==z2)||(32==z2)){
  3899. }
  3900.  else{r818fcp(C,((T0*)ms27_818));
  3901. }}
  3902. }
  3903.  else{{int z2=(((T818*)C))->_cc/*24*/;
  3904.  
  3905. if((9==z2)||(32==z2)){
  3906. }
  3907.  else 
  3908. if((37==z2)){
  3909. r805break_line(((T805*)((((T818*)C))->_last_manifest_string/*145*/)));
  3910. _state=0;
  3911. }
  3912.  else 
  3913. if((10==z2)){
  3914. r818fcp(C,((T0*)ms146_818));
  3915. _state=0;
  3916. }
  3917.  else{r818fcp(C,((T0*)ms28_818));
  3918. _state=0;
  3919. }}
  3920. }}
  3921. }
  3922. r818next_char(C);
  3923. r818skip_comments(C);
  3924. }
  3925. /*FI*/return R;
  3926. }
  3927. void r818a_function_call(T818* C){
  3928. T0* _e_current=NULL;
  3929. T0* _sfn=NULL;
  3930. _sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3931. {T358*n=malloc(sizeof(*n));
  3932. *n=M358;
  3933. r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
  3934. _e_current=(T0*)n;
  3935. }
  3936. r818a_r10(C,0,_e_current,_sfn,r818a_actuals(C));
  3937. }
  3938. /*No:EIFFEL_PARSER.fz_01*/
  3939. int r818a_real_constant(T818* C){
  3940. int R=0;
  3941. int _c=0;
  3942. int _l=0;
  3943. _l=(((T818*)C))->_line/*16*/;
  3944. _c=(((T818*)C))->_column/*12*/;
  3945. /*IF*/if (r818skip1(C,'\53')) {
  3946. /*IF*/if (r818a_real(C)) {
  3947. r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
  3948. R=1;
  3949. }
  3950. else {
  3951. r818go_back_at(C,_l,_c);
  3952. }
  3953. /*FI*/}
  3954.  else if (r818skip1(C,'\55')) {
  3955. /*IF*/if (r818a_real(C)) {
  3956. r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
  3957. /*[IRF3.5unary_minus*/r7add_first(((T7*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_to_string/*16*/)),'\55');
  3958. /*]*/
  3959. R=1;
  3960. }
  3961. else {
  3962. r818go_back_at(C,_l,_c);
  3963. }
  3964. /*FI*/}
  3965.  else if (r818a_real(C)) {
  3966. R=1;
  3967. }
  3968. /*FI*/return R;
  3969. }
  3970. /*No:EIFFEL_PARSER.fz_inspect*/
  3971. void r818show_nb(int a1,T0* a2){
  3972. /*IF*/if ((a1)>(0)) {
  3973. r306w_put_string(((T0*)ms75_470));
  3974. r306w_put_integer(a1);
  3975. r306w_put_string(a2);
  3976. }
  3977. /*FI*/}
  3978. /*No:EIFFEL_PARSER.fz_c_withcurrent*/
  3979. /*No:EIFFEL_PARSER.fz_03*/
  3980. /*No:EIFFEL_PARSER.fz_rename*/
  3981. T0* r818parse_feature_name(T818* C){
  3982. T0* R=NULL;
  3983. /*IF*/if (r818a_feature_name(C)) {
  3984. R=(((T818*)C))->_last_feature_name/*109*/;
  3985. }
  3986. else {
  3987. r818fcp(C,((T0*)ms140_818));
  3988. }
  3989. /*FI*/return R;
  3990. }
  3991. T0* r818connect_to_cecil(T818* C){
  3992. T0* R=NULL;
  3993. T0* _path=NULL;
  3994. _path=(((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/;
  3995. r306put_string(((T306*)(oBC364echo)),((T0*)ms7_818));
  3996. r306put_string(((T306*)(oBC364echo)),_path);
  3997. r306put_character(((T306*)(oBC364echo)),'\n');
  3998. r676load_file(((T676*)(oBC364parser_buffer)),_path);
  3999. /*IF*/if (!(/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/)) {
  4000. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_818);
  4001. r683fatal_error(((T683*)(oBC364eh)),b1);
  4002. }/*]*/
  4003. }
  4004. /*FI*/C->_is_running=1;
  4005. C->_formal_generic_list=NULL;
  4006. C->_function_type=NULL;
  4007. C->_in_ensure=0;
  4008. C->_last_comments=NULL;
  4009. C->_line=1;
  4010. C->_column=1;
  4011. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  4012. /*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
  4013. C->_cc='\n';
  4014. }
  4015. else {
  4016. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  4017. }
  4018. /*FI*/r818skip_comments(C);
  4019. {T7*n=malloc(sizeof(*n));
  4020. *n=M7;
  4021. r7make(n,32);
  4022. R=(T0*)n;
  4023. }
  4024. while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
  4025. r7extend(((T7*)R),(((T818*)C))->_cc/*24*/);
  4026. r818next_char(C);
  4027. }
  4028. r818skip_comments(C);
  4029. return R;
  4030. }
  4031. int r818a_identifier1(T818* C){
  4032. int R=0;
  4033. int _state=0;
  4034. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  4035. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  4036. /*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
  4037. r7extend(((T7*)(oBC511tmp_string)),b1);
  4038. }/*]*/
  4039. while (!((_state)>(0))) {
  4040. r818next_char(C);
  4041. {int z1=(((T818*)C))->_cc/*24*/;
  4042.  
  4043. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  4044. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  4045. r7extend(((T7*)(oBC511tmp_string)),b1);
  4046. }/*]*/
  4047. }
  4048.  else 
  4049. if(((65<=z1)&&(z1<=90))){
  4050. /*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
  4051. r7extend(((T7*)(oBC511tmp_string)),b1);
  4052. }/*]*/
  4053. }
  4054.  else{_state=1;
  4055. }}
  4056. }
  4057. /*IF*/if (r511isa_keyword()) {
  4058. _state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
  4059. while (!((_state)==(0))) {
  4060. _state=(_state)-(1);
  4061. r818prev_char(C);
  4062. }
  4063. }
  4064. else {
  4065. R=1;
  4066. r818skip_comments(C);
  4067. }
  4068. /*FI*/}
  4069. /*FI*/return R;
  4070. }
  4071. /*No:EIFFEL_PARSER.fz_once*/
  4072. /*No:EIFFEL_PARSER.ecp*/
  4073. void r818fcp(T818* C,T0* a1){
  4074. r683add_position(r818current_position(C));
  4075. /*[IRF3.6fatal_error*/{T0* b1=a1;
  4076. r683fatal_error(((T683*)(oBC364eh)),b1);
  4077. }/*]*/
  4078. }
  4079. int r818a_conditional(T818* C){
  4080. int R=0;
  4081. T0* _ifthenelse=NULL;
  4082. /*IF*/if (r818a_keyword(C,((T0*)ms21_470))) {
  4083. R=1;
  4084. {T530*n=malloc(sizeof(*n));
  4085. *n=M530;
  4086. /*[IRF3.3make*/((((T530*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  4087. /*]*/
  4088. _ifthenelse=(T0*)n;
  4089. }
  4090. r818a_then_part_list(C,_ifthenelse);
  4091. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  4092. /*[IRF3.3set_else_compound*/((((T530*)(((T530*)_ifthenelse))))->_else_compound)=(r818a_compound2(C,((T0*)ms60_818),((T0*)ms12_470)));
  4093. /*]*/
  4094. }
  4095. else {
  4096. /*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  4097. /*[IRF3.6wcp*/{T818* C1=C;
  4098. T0* b1=((T0*)ms61_818);
  4099. r818warning(r818current_position(C1),b1);
  4100. }/*]*/
  4101. }
  4102. /*FI*/}
  4103. /*FI*/C->_last_instruction=_ifthenelse;
  4104. }
  4105. /*FI*/return R;
  4106. }
  4107. /*No:EIFFEL_PARSER.us_real*/
  4108. void r818a_procedure_call(T818* C){
  4109. T0* _e_current=NULL;
  4110. T0* _sfn=NULL;
  4111. _sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  4112. {T358*n=malloc(sizeof(*n));
  4113. *n=M358;
  4114. r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
  4115. _e_current=(T0*)n;
  4116. }
  4117. r818a_r10(C,1,_e_current,_sfn,r818a_actuals(C));
  4118. }
  4119. /*No:EIFFEL_PARSER.us_implies*/
  4120. T0*oBC818tmp_string=NULL;
  4121. int r818a_integer(T818* C){
  4122. int R=0;
  4123. int _value=0;
  4124. int _state=0;
  4125. /*IF*/if (r3is_digit((((T818*)C))->_cc/*24*/)) {
  4126. R=1;
  4127. C->_start_line=(((T818*)C))->_line/*16*/;
  4128. C->_start_column=(((T818*)C))->_column/*12*/;
  4129. _value=r3value((((T818*)C))->_cc/*24*/);
  4130. while (!((_state)>(7))) {
  4131. r818next_char(C);
  4132. {int z1=_state;
  4133.  
  4134. if((0==z1)){
  4135. {int z2=(((T818*)C))->_cc/*24*/;
  4136.  
  4137. if(((48<=z2)&&(z2<=57))){
  4138. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4139. _state=1;
  4140. }
  4141.  else 
  4142. if((95==z2)){
  4143. _state=4;
  4144. }
  4145.  else{_state=8;
  4146. }}
  4147. }
  4148.  else 
  4149. if((1==z1)){
  4150. {int z2=(((T818*)C))->_cc/*24*/;
  4151.  
  4152. if(((48<=z2)&&(z2<=57))){
  4153. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4154. _state=2;
  4155. }
  4156.  else 
  4157. if((95==z2)){
  4158. _state=4;
  4159. }
  4160.  else{_state=8;
  4161. }}
  4162. }
  4163.  else 
  4164. if((2==z1)){
  4165. {int z2=(((T818*)C))->_cc/*24*/;
  4166.  
  4167. if(((48<=z2)&&(z2<=57))){
  4168. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4169. _state=3;
  4170. }
  4171.  else 
  4172. if((95==z2)){
  4173. _state=4;
  4174. }
  4175.  else{_state=8;
  4176. }}
  4177. }
  4178.  else 
  4179. if((3==z1)){
  4180. {int z2=(((T818*)C))->_cc/*24*/;
  4181.  
  4182. if(((48<=z2)&&(z2<=57))){
  4183. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4184. }
  4185.  else 
  4186. if((95==z2)){
  4187. r818fcp(C,((T0*)ms147_818));
  4188. }
  4189.  else{_state=8;
  4190. }}
  4191. }
  4192.  else 
  4193. if((4==z1)){
  4194. {int z2=(((T818*)C))->_cc/*24*/;
  4195.  
  4196. if(((48<=z2)&&(z2<=57))){
  4197. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4198. _state=5;
  4199. }
  4200.  else{r818fcp(C,((T0*)ms147_818));
  4201. }}
  4202. }
  4203.  else 
  4204. if((5==z1)){
  4205. {int z2=(((T818*)C))->_cc/*24*/;
  4206.  
  4207. if(((48<=z2)&&(z2<=57))){
  4208. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4209. _state=6;
  4210. }
  4211.  else{r818fcp(C,((T0*)ms147_818));
  4212. }}
  4213. }
  4214.  else 
  4215. if((6==z1)){
  4216. {int z2=(((T818*)C))->_cc/*24*/;
  4217.  
  4218. if(((48<=z2)&&(z2<=57))){
  4219. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4220. _state=7;
  4221. }
  4222.  else{r818fcp(C,((T0*)ms147_818));
  4223. }}
  4224. }
  4225.  else {{int z2=(((T818*)C))->_cc/*24*/;
  4226.  
  4227. if(((48<=z2)&&(z2<=57))){
  4228. r818fcp(C,((T0*)ms147_818));
  4229. }
  4230.  else 
  4231. if((95==z2)){
  4232. _state=4;
  4233. }
  4234.  else{_state=8;
  4235. }}
  4236. }}
  4237. }
  4238. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  4239. r818fcp(C,((T0*)ms158_818));
  4240. }
  4241. /*FI*/r818skip_comments(C);
  4242. {T342*n=malloc(sizeof(*n));
  4243. *n=M342;
  4244. r342make(n,_value,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  4245. C->_last_integer_constant=(T0*)n;
  4246. }
  4247. }
  4248. /*FI*/return R;
  4249. }
  4250. /*No:EIFFEL_PARSER.last_binary*/
  4251.  
  4252.